2017-08-29 95 views
-3

我在運行我的查詢時遇到以下錯誤,無法找到解決方案。無法投射字符串

從字符串中轉換日期和/或時間時轉換失敗。

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

所有表中的這個樣子的'07/17' 日期的

+0

MySQL是由Oracle產生的數據庫產品。 SQL Server是Microsoft生產的DBMS。他們不是一回事,而且你也不可能同時在他們兩個人身上運行陳述。你實際使用哪一個?它們具有不同的功能和語法差異,因此瞭解它是重要的。請勿隨意添加聽起來很熟悉或相似的標籤來標記垃圾郵件。使用實際適用於你的問題的那些。 –

回答

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

declare @mydatestr varchar(25) 

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

select @mydatestr 

會給你'07/01/17'

0

如果2012+用戶try_convert()以防萬一您有虛假數據。否則,標準轉換()應做

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