SQL Server 2008 DATETIME2 格式问题

发布于 2024-12-05 20:57:24 字数 354 浏览 0 评论 0原文

我正在处理来自澳大利亚的日期/时间(我位于美国)。我无法将以下字符串插入到 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

傲世九天 2024-12-12 20:57:24

我猜这取决于“区域设置”日期格式。

有关如何转换的一些示例,请参见: 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.

月亮坠入山谷 2024-12-12 20:57:24

尝试在 INSERT 之前发出 SET DATEFORMAT ydm;。然后 CONVERT(DATETIME,('2010/19/10 04:38:12.892')); 工作正常。

更多信息

Try issuing SET DATEFORMAT ydm; before INSERT. Then CONVERT(DATETIME,('2010/19/10 04:38:12.892')); works fine.

More info

意中人 2024-12-12 20:57:24

你可以尝试这个:

SET DATEFORMAT YDM;
select cast('2010/19/10 04:38:12.892' as datetime)

它会正确解析它

更新:
我在这里找到了帮助。< /a>

但我尝试直接转换为 datetime2 但没有成功。我不明白为什么你可以转换为 datetime 而不是 datetime2。也许对SO来说是个好问题。 :)

You can try this:

SET DATEFORMAT YDM;
select cast('2010/19/10 04:38:12.892' as datetime)

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. :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文