close

 

範例一:

UPDATE 資料表

--SET 資料欄位 =  '2018/5/10 10:16'      --這一行是可以執行的

SET 資料欄位 ='‎2018/5/10 10:16'     --跑這一行卻不行跑

where id = '123'

 

//已經確認過資料庫的欄位 資料內容 資料正常

 

可是如果我改成上面那行執行 卻變成可以執行。

 

範例二:

UPDATE 資料表

SET 資料欄位 =  '2018/5/10 10:16'      --這一行是可以執行的

--SET 資料欄位 ='2018/5/10 10:16'     --跑這一行卻不行跑

where id = '123'

 

↑執行範例二的第2行SQL碼卻成功?

↓ 順順利利的修改成功????

 

(1 個資料列受到影響)

 

??

?

??

??

黑人問號

 

我相信很多人說  哎呀  一定是因為我日期隔是用錯 要用-啦  用-!

好 我也想過 我也試過

 

修改範例一:

UPDATE 資料表

--SET 資料欄位 =  '2018/5/10 10:16'      --這一行是可以執行的

SET 資料欄位 ='‎2018-5-10 10:16'     --跑這一行卻不行跑

where id = '123'

 

我改成-了  一執行:

從字元字串轉換成日期及/或時間時,轉換失敗。

 

為了這一行研究了一個早上

以下解答:

 

問題出在那段雙引號中間的值!!

很多人看了好幾眼 奇怪明明就長一樣 哪裡有問題?

如果家中或公司中的SQL是2008年的 貼上去會一目了然

可是不一定每個人都是2008的

(我是2012年的) 

而2012年的貼上去執行會跟我一樣

那問題出在哪裡??

 

==========================不想看前面的解答在下方==========================

 

檢查雙引號中的值

用滑鼠點一下第一個雙引號前面

慢慢往右邊按 慢慢看 慢慢數

會發現怎麼在第一個引號跟2018的2前面多停留一個字元?

只要把這個"隱藏字元"刪除了  執行 就正常了

(1 個資料列受到影響)

 

==========================解答分隔線==========================

 

如此微不足道的問題,為什麼會發現?

因為請求主管求救的時候,因為主管是2008年的SQL server 所以一貼上去 隱藏字元看的一清二楚

所以才會找到這個發生原因,至於怎麼解決這個問題可能還要再想想。

 

(下台一鞠躬)

arrow
arrow

    Jungle 發表在 痞客邦 留言(0) 人氣()