0

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

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

在创建表任务中,我将日期列类型指定为日期。之后,为了测试结果,我在 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
4

2 回答 2

0

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

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

作为 yyyymmdd 格式的字符串,20120928无论格式设置如何,都可以始终转换为 datetime(因为它们是某种 ISO 格式)。

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

SET DATEFORMAT

例如

SET DATEFORMAT dmy
GO

SELECT GETDATE()

编辑:使用转换看起来像这样:

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

返回:

28/09/2012

于 2012-09-28T13:15:49.513 回答
0

使用功能CONVERT (DATETIME, @sDateOfBirth,101)

这是相同http://msdn.microsoft.com/en-us/library/ms187928.aspx的链接

于 2012-09-28T13:24:15.820 回答