SQL Server ODBC 规范日期格式为 DD/MM/YYYY?
假设我的数据库中有一个日期时间,例如:2011-10-24 00:00:00.000
。我想将其转换为 24/10/2011
,但我找不到执行此操作的本机 SQL Server 方法,并且我不想在运行我的代码后在代码中执行此操作询问。
我尝试执行以下操作(按照手册)
select CONVERT(datetime, '2011-10-24 00:00:00.000', 103);
但是这不起作用,我的结果是:
消息 242,级别 16,状态 3,第 1 行
将 char 数据类型转换为 datetime 数据类型导致日期时间值超出范围。
我怀疑这可能是由于小数精度或其中的时间部分造成的,但我不确定如何解决这个问题而不导致一些字符串黑客正则表达式替换废话(我宁愿不这样做,如果我这样做的话,我可能最终会在查询后进行转换)。
Lets say I have a datetime from my database, such as: 2011-10-24 00:00:00.000
. I would like to convert this into 24/10/2011
, but I can't find the native SQL Server way to do this, and I'd rather no do this in the code after I run my query.
I've tried doing something as follows (as per the manual)
select CONVERT(datetime, '2011-10-24 00:00:00.000', 103);
But that doesn't work out, my result is:
Msg 242, Level 16, State 3, Line 1
The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
I suspect this might be due to the decimal precision, or the time part of this, but I'm not sure how to go about this without resulting to some string-hacking-regex-replace nonsense (and I'd rather no do that, I might as well end up doing the conversion after the query if I do that).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果我正确地阅读了手册,您应该使用 stlye 120“ODBC canonical” - 不?
尝试:
在我的机器上工作:-) 这为您提供了一个可以使用的 SQL Server
DATETIME
。如果您想将其进一步转换为
24/10/2011
,请使用第二个CONVERT
转换为VARCHAR
字符串:这给了我:
If I read the manual correctly, you should be using stlye 120 "ODBC canonical" - no??
Try:
Works on my machine :-) This gives you a SQL Server
DATETIME
to work with.If you want to convert that further into
24/10/2011
, use a secondCONVERT
to convert into aVARCHAR
string:That gives me: