Age*_*tNo 1 sql sql-server date type-conversion
我的数据库中有几个表(带有数据),其格式为美国标准 mm/dd/yyyy。有没有一种方法可以将日期转换为英国格式(即 dd/mm/yyyy),而不涉及删除和重新创建表格?
谢谢!
创建表时,我将数据类型设置为 >date。我可以以 格式存储日期
mm/dd/yyyy,但不能dd/mm/yyyy。
正如我在评论中提到的,日期不以其显示格式存储- 事实上,您可以说日期没有显示格式- 只有日期的字符串表示形式才有显示格式。
每当在 SQL Server 中处理表示日期和日期时间值的字符串文字时,请使用ISO 8601日期时间格式(yyyy-MM-ddTHH:mm:ss或yyyyMMddTHHmmss)。
SQL Server 保证正确地将此字符串表示形式解析为日期/日期时间值,而不会产生歧义。
请注意T日期和时间之间的分隔符。有一个非常相似的标准格式,其中 被T替换为空格,但数据DateTime类型在解析此格式时存在错误- 并且它是文化相关的(请注意,DateTime2没有该错误) - 这是另一个原因你不应该再使用日期时间。
当您使用像这样的字符串文字时,'25/03/2018'人们很容易看出它代表March 25th 2018,但是如果 的当前值不是 ,则 SQL Server 将在尝试将此字符串解析为日期时引发错误。  DATEFORMATDMY
但是,SQL Server 将始终正确解析日期的 ISO 8601 字符串表示形式,无论任何本地设置或先前的set dateformat或set language语句等如何。  总是'2018-02-01T15:40:50'会被解析为。February 1st 2018, 3:40:50 PM
除非指定,否则正如 Martin Smith 在他的评论中所写,默认值dateformat取决于当前登录的默认语言设置- 因此适用于一个登录的查询可能会引发另一个登录的错误 - 这是另一个永远不要信任文化的好理由 -日期时间的特定字符串表示形式。
| 归档时间: | 
 | 
| 查看次数: | 8338 次 | 
| 最近记录: |