線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1339
推到 Plurk!
推到 Facebook!

請教sql問題

缺席
BOSS
中階會員


發表:70
回覆:79
積分:64
註冊:2006-11-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-31 10:41:07 IP:211.76.xxx.xxx 未訂閱
請問為何會出現字元(char)字串轉換到datetime的語法錯誤訊息 myclock2:='2003/3/25 19:15'    
 AdoQuery1.Close;
 AdoQuery1.SQL.Clear;
 AdoQuery1.SQL.Text:='update polldata set clock2= convert(datetime,' #39 MyClock2 #39 ') where emp_no=' #39 Colums[4] #39 
                                                 ' and date=' #39 MyDate #39 ' and clock=' #39 MyClock #39;
AdoQuery1.ExecSQL;
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-31 10:57:27 IP:218.16.xxx.xxx 未訂閱
你的 MyClock2 是甚麼形態的變數? Colums[4] 又是甚麼? MyDate 及 MyClock 是字串嗎?
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-31 10:57:41 IP:211.76.xxx.xxx 未訂閱
引言: 請問為何會出現字元(char)字串轉換到datetime的語法錯誤訊息
請問資料庫為何, 若發生這樣的現象, 你可以試著利用 select convert(datetime, '2003/3/25 19:15') 試試看是否也會發生轉換的問題, 以確定問題的所在!
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-31 11:04:45 IP:211.74.xxx.xxx 未訂閱
Colums[4]應該要改成這樣吧??Query1.Fieldbyname('ABC').Value//ABC是Colums[4]的值,另外你可以在AdoQuery1.ExecSQL;前加上一句AdoQuery1.SQL.SaveToFile('C:\123.txt');這樣比較好DeBug TRY TRY SEE
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-31 11:30:33 IP:147.8.xxx.xxx 未訂閱
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_tsqlcon_6lyk.asp
引言:CAST and CONVERT Explicitly converts an expression of one data type to another. CAST and CONVERT provide similar functionality. Syntax Using CAST: CAST ( expression AS data_type ) Using CONVERT: CONVERT ( data_type [ ( length ) ] , expression [ , style ] ) Arguments expression Is any valid Microsoft® SQL Server™ expression. For more information, see Expressions. data_type Is the target system-supplied data type, including bigint and sql_variant. User-defined data types cannot be used. For more information about available data types, see Data Types. length Is an optional parameter of nchar, nvarchar, char, varchar, binary, or varbinary data types. style Is the style of date format used to convert datetime or smalldatetime data to character data (nchar, nvarchar, char, varchar, nchar, or nvarchar data types), or the string format when converting float, real, money, or smallmoney data to character data (nchar, nvarchar, char, varchar, nchar, or nvarchar data types).
I think you may try formatting the string with the locale settings on the SQL server.
BOSS
中階會員


發表:70
回覆:79
積分:64
註冊:2006-11-01

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-31 11:41:59 IP:211.76.xxx.xxx 未訂閱
我資料庫是sql mycolock2,mydate,myclock是字串型態的變數
 AdoQuery1.Close;
 AdoQuery1.SQL.Clear;
 AdoQuery1.SQL.Text:='update polldata set clock2= convert(datetime,' #39 MyClock2 #39 ') where emp_no=' #39 '001' #39                                                  ' and date=' #39 MyDate #39 ' and clock=' #39 MyClock #39;
AdoQuery1.ExecSQL;
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-31 11:59:46 IP:211.76.xxx.xxx 未訂閱
引言: 我資料庫是sql mycolock2,mydate,myclock是字串型態的變數
確定資料庫就好辦了.. 你可以先用 select convert(datetime, '2003/3/25 19:15') 看看是不是會回傳正確的資料. 另外也請說明一下你的polldata table 中的 clock2, emp_no, date, clock 的欄位型態. 是否可以完整的列出你的錯誤訊息給大家看看呢. 就你的程式來看是沒有問題的啊.. 或是你可以在 execsql 之前先將你的 sql.text show 出來看看 是不是有問題!! 或是你再試試將 date 用 [] 包起來.. 像這樣 [date] 試試看.
BOSS
中階會員


發表:70
回覆:79
積分:64
註冊:2006-11-01

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-03-31 13:07:15 IP:211.76.xxx.xxx 未訂閱
謝謝各位前輩的解答 我已找到錯誤在哪 clock,clock2的欄位型態是datetime而欄位資料是2003/3/26 上午 08:59:00 當update時才會發生我所說的錯誤訊息
系統時間:2024-07-03 18:04:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!