SQL Server 2008 DATETIME2 格式问题
我正在处理来自澳大利亚的日期/时间(我位于美国)。我无法将以下字符串插入到 DATETIME2 列中:
2010/19/10 04:38:12.892
如您所见,它的格式为 yyyy/dd/mm HH:MM:ss.MMM 格式。据我所知,正常格式是yyyy-mm-dd HH:MM:ss.MMM
。我想知道 SQL Server 上是否有一个位置设置,我可以更改它以使其接受这种格式,或者我是否需要自己解析它并重新排列它。
编辑:仅供参考,我已经将 mm/dd/YYYY HH:MM:ss.MMM
格式字符串导入到该字段中。
I am dealing with a date/time from Australia (I am located in the USA). I am unable to get the following string to insert into a DATETIME2 column:
2010/19/10 04:38:12.892
As you can see, it's formatted in yyyy/dd/mm HH:MM:ss.MMM
format. I understand that the normal format is yyyy-mm-dd HH:MM:ss.MMM
. What I am wondering is if there is a locality setting on SQL Server that I can change to get it to accept this format, or if I need to parse it and rearrange it myself.
EDIT: Just for your information, I have been importing a mm/dd/YYYY HH:MM:ss.MMM
format string into the field just fine.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我猜这取决于“区域设置”日期格式。
有关如何转换的一些示例,请参见: http://www.java2s.com /Code/SQLServer/Date-Timezone/Formatdatemmddyyyy.htm
希望这对您有帮助。
It depends on the "locale" date format, I guess.
Some samples on how to convert here : http://www.java2s.com/Code/SQLServer/Date-Timezone/Formatdatemmddyyyy.htm
Hope this was helpful.
尝试在
INSERT
之前发出SET DATEFORMAT ydm;
。然后 CONVERT(DATETIME,('2010/19/10 04:38:12.892')); 工作正常。更多信息
Try issuing
SET DATEFORMAT ydm;
beforeINSERT
. ThenCONVERT(DATETIME,('2010/19/10 04:38:12.892'));
works fine.More info
你可以尝试这个:
它会正确解析它
更新:
我在这里找到了帮助。< /a>
但我尝试直接转换为 datetime2 但没有成功。我不明白为什么你可以转换为 datetime 而不是 datetime2。也许对SO来说是个好问题。 :)
You can try this:
And it will parse it correctly
UPDATE:
I found help here.
But I tried casting to datetime2 directly and it didn't work. I don't understand why you can cast to datetime and not datetime2. Perhaps a good question for SO. :)