SQL 查询做奇怪的事情

发布于 2024-10-31 16:25:40 字数 184 浏览 2 评论 0原文

如果我在 SQL Server Express 2008 上运行此查询:

Insert NoteBook (Date, Note) Values ('11/04/2011 11:02:46', 'test')

它将日期存储为 04/11/2011

如何防止这种情况发生?

If I run this query on SQL Server Express 2008 :

Insert NoteBook (Date, Note) Values ('11/04/2011 11:02:46', 'test')

It stored the date as 04/11/2011

How can I prevent this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(1

夜巴黎 2024-11-07 16:25:40

使用 ISO-8601 格式YYYYMMDD(或 YYYY-MM-DDTHH:MM:SS) - 无论您的 SQL Server 语言和区域设置如何,它始终有效。

INSERT INTO dbo.NoteBook(Date, Note) 
VALUES('2011-04-11T11:02:46', 'test')

SQL Server 中的日期以任何特定的面向字符串的格式存储 - 日期就是日期,无论您看到什么。

您会看到日期的字符串表示形式 - 但同样:它不是以这种方式存储 - 因此您无法“阻止”它以这种方式存储...

检查 SQL Server 中的语言设置:

SELECT @@LANGUAGE

什么你有语言吗??该语言定义了显示日期的默认格式。

Use the ISO-8601 format: YYYYMMDD (or YYYY-MM-DDTHH:MM:SS) - it works always, regardless of your SQL Server language and locale settings.

INSERT INTO dbo.NoteBook(Date, Note) 
VALUES('2011-04-11T11:02:46', 'test')

The date in SQL Server is NOT stored in any particular string-oriented format - a date is a date is a date, regardless of what you see.

You see a string representation of the date - but again: it's NOT stored that way - and thus you cannot "prevent" it from being stored that way...

Check your language settings in SQL Server:

SELECT @@LANGUAGE

What language do you have?? The language defines the default format in which dates are shown.

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