[英]convert date in string format to date datatype sql
我在名为 Date 的列中有值作为 mmddyy 形式的 nvarachar 数据类型,并且想要将值转换为 yyyy-mm-dd 形式的日期数据类型,我可以使用 sql colde 来转换值。
例如 02121955 -> 1955-02-12
您可以使用datefromparts()
:
select datefromparts(right(str, 4), left(str, 2), substring(str, 3, 2))
或者将其重建为 yyyymmdd 格式并转换:
select convert(date, left(right(str, 4) + str, 8))
这是一个 db<>fiddle。
我发现了一个与您类似的问题已解决: https://stackoverflow.com/a/39139155/14940878
以下是根据您的请求更改的代码:
declare @date varchar(max)='02121955'
select convert(varchar(8),cast(CONCAT(SUBSTRING(@date,5,4),'/',SUBSTRING(@date,1,2),'/',SUBSTRING(@date,3,2)) as date),112)as [YYYYMMDD]
您需要获取每个字段并将其合并为一个,然后将其转换为日期时间。
SUBSTRING(@date,5,4) - Takes the last four characters.
SUBSTRING(@date,1,2) - Takes the first two.
SUBSTRING(@date,3,2) - Takes the two in the middle.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.