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

问题描述

我在名为 Date 的列中有值作为 mmddyy 形式的 nvarachar 数据类型,并希望将这些值转换为 yyyy-mm-dd 形式的日期数据类型,我可以使用什么 sql Colde 来转换价值。

示例 02121955 -> 1955-02-12

解决方法

我发现了一个与您类似的问题已解决: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),3,2)) as date),112)as [YYYYMMDD]

您需要将每个字段合并为一个,然后将其转换为日期时间。

SUBSTRING(@date,4) - Takes the last four characters.

SUBSTRING(@date,2) - Takes the first two.

SUBSTRING(@date,2) - Takes the two in the middle.

,

假设它是 SQL Server,我认为你只需要

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

DEMO