我需要在SQL Server的mm/dd/yyyy格式的列中存储数据。在我看来,我会用DATE
数据类型创建这个列,并使用CONVERT()
将其转换为mm/dd/yyyy格式
CREATE TABLE [dbo].TempDate
(
CompanyID nvarchar (512) NULL,
VacDate date NULL,
OffDate date NULL,
Duration time NULL
)
SELECT CONVERT(varchar(10), VacDate, 10) AS "StartDate"
FROM [dbo].TempDate;
没有问题,我得到的日期是mm/dd/yyyy格式。问题是,我需要将这个表格导入CSV格式表格中的日期是标准的yyyy-mm-dd这就是CSV导入的内容。我需要在CSV日期是在mm/dd/yyyy格式。我试图将INSERT
与CONVERT
一起放入这个表中,但是日期不能转换。是否有一种方法可以在mm/dd/yyyy列中存储日期?像在Oracle中一样,可以用特定的格式定义列。
谢谢你的建议。
虽然我认为您的重点应该放在获取导出数据的查询上,但如果您确实需要在数据库中使用它,您可以添加一个计算列,显示数据的字符串表示形式,并将该列用于导出。
Alter table TempDate
Add VacDataComputed As CONVERT(varchar(10), VacDate, 10)
编辑:如前所述,您使用10作为样式参数,这将呈现mm-dd-yyyy
。如果您希望它是mm/dd/yyyy
格式,请使用101。你可以在这里看到更多的样式格式。
你的问题有点不清楚。您的意思是CSV文件包含MM/dd/yyyy
格式,并且希望将其作为日期时间值导入SQL表中吗?所以值像12/31/2015
,07/15/2014
等是在csv数据文件?
如果是这样的话,我认为你有两个选择。
-
导入datetime列作为字符串值,然后添加一个具有datetime数据类型的新列,并使用字符串操作转换值
-
或者,在导入之前更改CSV输入文件并重新格式化datetime列,使用notepad++ CSV Lint插件或Python或其他