字符串到日期,例如1月58日到1958-01-01

hlswsv35  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(344)

我想将varchar中的一个短日期转换为date:'short month name-yy'格式,例如 'Apr-57' 或者 'Mar-2001' 为msms提供可读格式,以便将其转换为日期,例如 1957-04-01 或者 2001-03-01 .
有没有我错过的捷径?我尝试了转换、强制转换和子字符串来改变格式,看看是否有帮助。提前谢谢你的帮助。

7gs2gvoe

7gs2gvoe1#

这有用吗?

DECLARE @vc VARCHAR(50) = 'Mar-2001';
SET @VC = '01-' + @vc;
SELECT CAST(@VC AS DATE);
ep6jt1vc

ep6jt1vc2#

如果它总是以相同的格式,那么您可以尝试下面的方法。我已经在SQLServer上测试过了。

DECLARE @unformat_date varchar(10) = 'May-2001'

SELECT DATEFROMPARTS(DATEPART(YEAR,REPLACE(@unformat_date,'-',' ')),DATEPART(MONTH,REPLACE(@unformat_date,'-',' ')),01) as formated_dated

相关问题