繁体   English   中英

将字符串格式的日期转换为日期数据类型 sql

[英]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.

假设它是 SQL 服务器,我想你只需要

select cast(format(02121955,'##-##-####') as date)

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM