SQL Server ODBC规范日期格式为DD / MM / YYYY?

时间:2011-11-01 16:07:21

标签: sql-server datetime sql-server-2000

假设我的数据库中有一个日期时间,例如:2011-10-24 00:00:00.000。我想将其转换为24/10/2011,但我找不到本机SQL Server的方法,在运行查询后我不想在代码中执行此操作。

我尝试过如下操作(as per the manual

select CONVERT(datetime, '2011-10-24 00:00:00.000', 103);

但这没有用,我的结果是:

  

Msg 242,Level 16,State 3,Line 1
  将char数据类型转换为datetime数据类型会导致超出范围的datetime值。

我怀疑这可能是由于小数精度或时间部分,但我不知道如何解决这个问题而不会导致一些字符串黑客 - 正则表达式替换废话(我宁愿不这样做,如果我这样做,我最终可能会在查询后完成转换。)

1 个答案:

答案 0 :(得分:3)

如果我正确阅读了本手册,你应该使用stlye 120“ODBC canonical” - 没有?

尝试:

select CONVERT(datetime, '2011-10-24 00:00:00.000', 120);

在我的机器上运行:-)这为您提供了一个可以使用的SQL Server DATETIME

如果您想将其进一步转换为24/10/2011,请使用第二个CONVERT转换为VARCHAR字符串:

select CONVERT(VARCHAR(50), CONVERT(datetime, '2011-10-24 00:00:00.000', 120), 103)

这让我:

24/10/2011