[英]How to convert varchar to date format
我想将我的字段(dateVar = '08 / 2018')转换为真实日期字段。 实际上我只有几个月和几年,所以我只需要像一天一样添加01。 我的最终结果应该是2018-08-01。
CREATE TABLE dateTable (
dateVar varchar(10)
);
insert into dateTable (dateVar)
values('08/2018'),('01/2015');
我用它来转换为日期,但不起作用
SELECT CONVERT(date, dateVar, 103) FROM dateTable
您可以串联丢失的01
:
SELECT CONVERT(date, '01/'+dateVar, 103)
FROM tab
为了避免用户输入不正确的问题,可以使用TRY_CONVERT
。 如果发生转换错误,它将返回NULL
。
您应该对日期使用标准格式:
insert into dateTable (dateVar)
values('2018-08-01'), ('2015-01-01');
连字符是ISO标准和大多数数据库中的标准。 它几乎始终可以在SQL Server中正常工作,但是真正的SQL Server标准删除了连字符'20180801'
和'20150101'
。
然后,应声明该表具有该列的日期:
CREATE TABLE dateTable (
dateVar date
);
如果需要以特定格式查看它,请使用一个计算变量:
CREATE TABLE dateTable (
dateVar date,
date_mmyyyy as (right(convert(varchar(10), dateVar, 103), 7))
);
然后date_mmyyyy
显示您希望看到的值。
技巧只是将字符串转换为YYYYMMDD格式并将其强制转换。
cast(right(dateVar,4) + left(dateVar,2) + '01' as date)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.