MSSQL如何将字符串“ ddMMM”替换或转换为日期“ MMMdd”?

问题描述 投票:0回答:1

那里

如何在[MSSQL]中进行替换或转换

如下表

startDatevarchar(5)08月6月016月210月10日

站varchar(4)ICN洛杉矶国际机场财务总监ICN

startDate列varchar字符串,但键入'ddMMM'

我像这样在SQL查询中请求01JUN〜10JUN ...从dbo.temp中选择*,其中convert(varchar(5),Startdate)> = convert(varchar(4),'01JUN')

...但是,错误的查询。

请给我建议。

sql-server
1个回答
0
投票
您将日期存储为varchar的事实本身就是一个问题,而您存储的版本是

特定于语言的>]。要实现这一点,您将需要转换为date,然后再转换为varchar。这仅适用于基于语言的语言;如果LOGIN使用的是法语,德语,日语,则此方法将无效(要使其正常工作,您需要修复数据模型)。​​

SELECT V.YourColumn, UPPER(REPLACE(CONVERT(varchar(6),CONVERT(date,STUFF(V.YourColumn,3,0,' ') + ' 2000'),107),' ','')) AS NewColumn FROM (VALUES('08MAY'), ('01JUN'), ('02JUN'), ('10JUN'))V(YourColumn)

© www.soinside.com 2019 - 2024. All rights reserved.