将字符串转换为 yyyy-mm-dd
Posted
技术标签:
【中文标题】将字符串转换为 yyyy-mm-dd【英文标题】:convert string to yyyy-mm-dd 【发布时间】:2013-06-30 02:16:31 【问题描述】:我在 Excel 中有一个日期格式,例如“20.03.2013”,我将其转换为“2013-03-20”,因为这就是我的 sql-server 表中日期的样子。我创建了一个临时表,在其中为该字段提供了 varchar(15) 数据类型。现在我必须将该 varchar 字段转换为日期字段,但是当我检查转换选项列表时,我找不到 yyy-mmm-dd。 HERE 需要帮助才能获取我的 yyyy-mm-dd 字符串。
【问题讨论】:
【参考方案1】:你可以使用:
CAST('2013-03-20' AS DATE)
将其转换为 DATE
字段。
有许多格式可以 CAST() 作为 DATE 没有问题,包括:
20130320
2013-03-20
2013 mar 20
March 20, 2013
2013.03.20
我确定某处有一个全面的列表,但无法通过快速搜索找到一个。我相信语言设置会影响其中的一些。
【讨论】:
太棒了,这对我来说很好,我学到了一些非常有用的东西。谢谢你们!【参考方案2】:check here
CAST 的语法:
CAST ( expression AS data_type [ (length ) ])
CONVERT 的语法:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
【讨论】:
【参考方案3】:我相信这种格式会在任何地区自动投射,所以:
select cast('2013-03-20' as datetime)
【讨论】:
【参考方案4】:我建议使用明确的convert
而不是cast
:
select convert(date, '2013-03-20', 120)
【讨论】:
为什么要使用转换而不是强制转换? 首先——你不必考虑SQL会自动读取什么格式,在代码中更容易阅读【参考方案5】:相信你也可以试试这个
convert(nvarchar(200), GETDATE(), 112)
为20200611格式
【讨论】:
以上是关于将字符串转换为 yyyy-mm-dd的主要内容,如果未能解决你的问题,请参考以下文章