全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1278
推到 Plurk!
推到 Facebook!

一個簡單的SQL問題

答題得分者是:timhuang
Selena
一般會員


發表:16
回覆:28
積分:8
註冊:2002-11-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-30 16:52:18 IP:61.59.xxx.xxx 未訂閱
我想要在MS SQL中某資料表的某欄位設一個預設值,這個預設值是系統時間,要下什麼指令呢?(我是說在MS SQL中呦~) 月光小築~月牙兒
------
月光小築~月牙兒
chih
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-30 17:00:13 IP:211.74.xxx.xxx 未訂閱
create TABLE ABC( A1 datetime default getdate())
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-30 18:15:26 IP:218.32.xxx.xxx 未訂閱
1. create default SetToNow as getdate() -- Create Default Object 只需建置一次    2. sp_bindefault 'SetToNow','[TableName].[ColumnName]' -- 可以 bind 很多欄    
Selena
一般會員


發表:16
回覆:28
積分:8
註冊:2002-11-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-30 19:34:01 IP:211.74.xxx.xxx 未訂閱
這是抓到的時間04 30 2003 7:35PM 可是如果我要它依我自己的格式來顯示呢?要怎麼寫 如:2003/04/30 月光小築~月牙兒
------
月光小築~月牙兒
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-30 22:38:45 IP:218.32.xxx.xxx 未訂閱
引言: 這是抓到的時間04 30 2003 7:35PM 可是如果我要它依我自己的格式來顯示呢?要怎麼寫 如:2003/04/30
default 與 dateime format 有啥關係? 你是問 defalut object 還是 Transact-SQL 的 convert function ?
timhuang
尊榮會員


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-30 23:47:34 IP:61.221.xxx.xxx 未訂閱
引言: 這是抓到的時間04 30 2003 7:35PM 可是如果我要它依我自己的格式來顯示呢?要怎麼寫 如:2003/04/30
在 MSSQL 資料庫中存的 DateTime 格式的資料其實是一個 8byte的浮點數, 要如何顯示, 會依照系統的 locale 設定會有不同, 若是要轉為字串的話有以下兩種如 Mickey 前輩的提示一樣, 其一為在 delphi 中的轉換, 利用 FormatDatetime, 其二是在資料庫就先轉為 varchar 皆可! (1) sTemp := FormatDatetime('yyyy/mm/dd', Query1.FieldByName('my_col').AsDateTime); (2) 'select convert(varchar, my_col, 111) as my_col_data from xxx' sTemp := Query1.FieldByName('my_col_data').AsString
Selena
一般會員


發表:16
回覆:28
積分:8
註冊:2002-11-06

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-05-01 07:55:41 IP:211.74.xxx.xxx 未訂閱
嗯..我的意思是,當在MS SQL中抓到系統時間時,我能直接在MS SQL中轉換它的顯示格式並存到資料庫中嗎? 也就是說我在預設的那個欄位下了getdate()它會抓到的系統時間格式為04 30 2003 7:35PM,那有沒法子直接在SQL中做到類似Delphi的轉換顯示格式成為2003/04/30,然後才存到資料庫中,使得最終在我的資料庫的時間的那個欄位就是出現xxxx/xx/xx的樣子。 可以嗎? 月光小築~月牙兒
------
月光小築~月牙兒
chih
版主


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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-05-01 08:10:59 IP:211.74.xxx.xxx 未訂閱
你有沒有先將語法Create Run看看ㄋ?我這邊試的結果就是xxxx/xx/xx,還是你只要存日期??
引言: 嗯..我的意思是,當在MS SQL中抓到系統時間時,我能直接在MS SQL中轉換它的顯示格式並存到資料庫中嗎? 也就是說我在預設的那個欄位下了getdate()它會抓到的系統時間格式為04 30 2003 7:35PM,那有沒法子直接在SQL中做到類似Delphi的轉換顯示格式成為2003/04/30,然後才存到資料庫中,使得最終在我的資料庫的時間的那個欄位就是出現xxxx/xx/xx的樣子。 可以嗎? 月光小築~月牙兒
timhuang
尊榮會員


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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-05-01 09:06:58 IP:61.221.xxx.xxx 未訂閱
Hi, 之所以會出現 04 30 2003 7:35PM 的型態, 在前一篇說的很清楚了, 是因為系統中的 locale 設定所導致, 不會影響資料的正確性, 只是呈現出來的資料不一樣而已, 要解決這個問題有兩個動作要做, 一個是檢查伺服器端的控制台中的地區選項, 將裡面的一般tab中的[您的地區設定(位置)(Y)] 這項改為 中文(台灣), 時間和日期的tab也check一下看是否正確, 作業系統是英文版的亦同, 再檢查客戶端的相同設定是否正常即可, 一般是只要檢查客戶端的設定就可以了, 先調整客戶端(也就是你寫程式的電腦)的地區選項中的一般,日期,時間三個 tab 的內容調整完成後, 重開 delphi 再試看看, 應該就可以解決了!!
Selena
一般會員


發表:16
回覆:28
積分:8
註冊:2002-11-06

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-05-01 10:30:59 IP:211.74.xxx.xxx 未訂閱
原來是這樣子哦~~謝謝各位大大...我懂嘍~~ 月光小築~月牙兒
------
月光小築~月牙兒
系統時間:2024-07-01 18:41:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!