我需要帮助编写SQL语句,将类型为nvarchar(255)
的日期列转换为日期类型"yyyy-mm-dd"格式的
我尝试了stackoverflow中与此主题相关的所有可用选项,但找不到适合我的数据集的解决方案。
样本数据:
Fri, 23 Oct, 2020
Mon, 19 Oct, 2020
Fri, 16 Oct, 2020
Tue, 20 Oct, 2020
Tue, 27 Oct, 2020
迄今为止的格式:
2020-Oct-23
2020-Oct-19
2020-Oct-16
2020-Oct-20
2020-Oct-27
我使用的是SQL server 2014。
SQL Server作为将字符串转换为日期的非常灵活的默认规则。然而,它不承认一周中最重要的一天。所以,如果你去掉它,就很容易了:
select convert(date, stuff('Fri, 23 Oct, 2020', 1, 5, ''))
或者引用一个列:
select convert(date, stuff(datecol, 1, 5, ''))
这将生成一个date
,然后可以使用format()
或convert()
对其进行任意格式设置。但是,我建议将格式保持为YYYY-MM-DD。这适用于范围比较和ORDER BY
。你真的希望日期被表示为日期。
这里有一个db<gt;不停摆弄