麻烦铸造字符串到目前为止

时间:2017-08-29 00:47:13

标签: sql-server

运行查询时遇到以下错误,无法找到解决方案。

从字符串转换日期和/或时间时转换失败。

select * from creditcard
where cast(left(expdate,2) + '/01/' + right(expdate,2) as date) < '08/01/17'                      
and paycode <> ''

表格中的所有日期都显示为'07 / 17'

2 个答案:

答案 0 :(得分:0)

declare @myfakedate varchar(25) = '07/17'

declare @mydatestr varchar(25)

Select @mydatestr = stuff(@myfakedate,3,0,'/01')

select @mydatestr

会给你&#39; 07/01/17&#39;

答案 1 :(得分:0)

如果您有虚假数据,请使用2012+用户try_convert()。否则,标准的convert()应该

示例

Select *
 From  YourTable
 Where try_convert(date,replace(expdate,'/','/01/'))<'08/01/17'