【发布时间】:2017-12-15 13:10:47
【问题描述】:
INSERT INTO PUZ_DATE_FORMAT
SELECT FORMAT(GETDATE(),'d', 'it-IT') AS ItalianDate
我收到此错误:
消息 242,第 16 级,状态 3,第 1 行
将 nvarchar 数据类型转换为 datetime 数据类型导致值超出范围。
我的表只包含 datetime 数据类型的单列,我编写的格式语句将给出类似 15/12/2017 的输出。
但是当我尝试在表格中插入一行时,它不允许我这样做。它只允许 dd-mm-yyyy 格式 - 不允许 dd/mm/yyyy。为什么?
【问题讨论】:
-
您为什么要尝试转换? GETDATE() 返回一个日期时间,您可以毫不费力地插入它。日期时间没有格式,当日期时间值显示在屏幕上或以其他方式打印时应用格式。
-
补充@HoneyBadger 所说的,日期时间以二进制结构存储在数据库中。这些值的显示格式完全由演示应用程序控制。
标签: sql-server date datetime types date-format