如何让Sql Server接受dd / mm / yyyy格式?

时间:2012-09-28 13:12:26

标签: sql-server-2008 visual-studio-2008

所以我在名为“Dates”的列上有一个值为19/09/2011的Excel文件。我在Excel中选择了整个列 - 格式单元格 - 位置:英语(英国)并选择了样本值“14/03/2011”,以便当天出现在该月之前。

现在,在Visual Studio中使用一个简单的导入包,我在Sql Server中导入了数据(我使用了向导生成的3个任务:Drop table,在Sql Server中创建表结构,以及实际导入)。

在create table任务中,我将日期列类型指定为日期。 之后,为了测试结果,我在Sql Server表中选择了日期desc。

所以我得到了这个,所有隆隆声(这应该只是9月的数据,所以我们应该在年后只有“09”):

2011-12-09
2011-11-09
2011-10-09
2011-09-30
2011-09-29
2011-09-28
2011-09-27
2011-09-26
2011-09-25
2011-09-24
2011-09-23
2011-09-22
2011-09-21
2011-09-20
2011-09-19
2011-09-18
2011-09-17
2011-09-16
2011-09-15
2011-09-14
2011-09-13
2011-09-09
2011-08-09
2011-07-09
2011-06-09
2011-05-09
2011-04-09
2011-03-09
2011-02-09
2011-01-09

2 个答案:

答案 0 :(得分:0)

要将数据输入日期时间列,您可以:

select cast(replace(date_col, '-', '') as datetime)

因为yyyymmdd格式的字符串(例如20120928)总是可以转换为日期时间而不管格式设置如何(因为它们是某种ISO格式)。

要以特定格式从表格中获取数据,您可以CASTCONVERT或使用

SET DATEFORMAT

e.g。

SET DATEFORMAT dmy
GO

SELECT GETDATE()

编辑:使用convert会如下所示:

SELECT CONVERT(VARCHAR(10), GETDATE(), 103)

返回:

  

28/09/2012

答案 1 :(得分:0)

使用函数CONVERT (DATETIME, @sDateOfBirth,101)

以下是相同http://msdn.microsoft.com/en-us/library/ms187928.aspx

的链接