【发布时间】:2016-06-29 23:50:08
【问题描述】:
我在 SQL Server 的某一列中有一个日期,示例日期是:
10/02/2012
23/11/2012
13/01/2012
10/02/2012
10/02/2012
我尝试了将日期转换为YYYYMMDD的方法
DECLARE @v DATE= '1/11/2012'
SELECT CONVERT(VARCHAR(10), @v, 112)
我在同一个表中有另一列我想以YYYYMMDD 格式更新日期,这里的问题是日期不正确
并抛出错误
DECLARE @v DATE= '23/11/2012'
SELECT CONVERT(VARCHAR(10), @v, 112)
消息 241,第 16 级,状态 1,第 1 行
从字符串转换日期和/或时间时转换失败。
感谢任何帮助,日期将以 dd/mm/yyyy 或 mm/dd/yyyy 的任何顺序出现,它应该能够正确转换它
【问题讨论】:
-
如果你得到字符串并且它与 dd/mm/yyyy 和 mm/dd/yyyy 不一致,那么你正在打一场失败的战斗。你怎么知道哪个是哪个? 2016 年 12 月 10 日怎么样?那是哪种“格式”,您怎么知道?这就是为什么您永远不应该将日期存储为 varchar。对于这种类型的数据,有一种数据类型要好得多。它被称为日期或日期时间。
-
A) 您将日期存储为哪种列类型? B)如果您不知道开始日期的格式,您将如何能够可靠地格式化输出?例如。 10/04/2016 = 10 月还是 4 月?
标签: sql-server date