将字符串转换为 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的主要内容,如果未能解决你的问题,请参考以下文章

怎么将YYYYMMDD字符串格式转换为日期YYYY-MM-DD

Impala:将 dd-MMM-yy 字符串转换为 yyyy-mm-dd

如何使用 Big Query SQL Standard 将日期 YYYY-MM-DD 转换为字符串 YYYYMM?

将iso日期格式的字符串转换为毫秒。 ISO日期格式包含(“ yyyy-MM-dd”),并且没有时区

将这种“ yyyy-MM-dd'T'HH:mm:ss.SSSXXX”格式的字符串转换为LocalDate

将格式为“yyyy-MM-dd HH:mm:ss.m”的日期字符串转换为“yyyy-MM-dd HH:mm:ss”时出现问题