那里
如何在[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')
...但是,错误的查询。
请给我建议。
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)