一尘不染

SQL查询做奇怪的事情

sql

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

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

它将日期存储为2011年4月11日

我该如何预防呢?


阅读 123

收藏
2021-05-16

共1个答案

一尘不染

使用ISO-8601格式:(YYYYMMDDYYYY-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

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

2021-05-16