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

輸入及顯示都為民國年不知資料庫欄位要用[日期型態]或是[字串型態]較方便?

尚未結案
jeffreck
高階會員


發表:247
回覆:340
積分:197
註冊:2003-01-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-09-08 10:43:26 IP:61.218.xxx.xxx 未訂閱
請教各位前輩資料庫系統[日期欄位]部份都是如何處理的,我要輸入及顯示都為民國年 不知資料庫欄位要用[日期型態]或是[字串型態]較方便 目前使用字串方式有以下問題?? 存入資料庫格式為 092/01/12 使用TADOdataset設定欄位的 EditMask:='000/00/00;1;_' 或 EditMask:='999/99/99;1;_' 有以下問題請教 1.如使用EditMask:='000/00/00;1;_'時就一定要輸入,不能空白?? 2.如使用EditMask:='999/99/99;1;_'時如不輸入資料時,則值為 ___/__/__ ,並不是空白 非常非常的謝謝你,因為有你這世界變的更美好 ☆ ^_^ ☆ °∴°﹒☆°.﹒‧°∴°﹒°.﹒‧°∴°﹒ ﹒‧°∴°﹒☆°.﹒‧°∴°﹒°.﹒‧°∴°﹒﹒‧°∴°﹒☆°.
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-09-08 11:06:09 IP:63.84.xxx.xxx 未訂閱
Hi.    使用EditMask:='000/00/00;1;_'時就一定要輸入,不能空白. 使用EditMask:='999/99/99;1;_'時如不輸入資料時,則值為 ___/__/__ ,並不是Null. 使用EditMask:='999/99/99;0;_'時如不輸入資料時,則值是Null. Try See See! ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
jeffreck
高階會員


發表:247
回覆:340
積分:197
註冊:2003-01-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-09-08 11:26:31 IP:61.218.xxx.xxx 未訂閱
引言: Hi. 使用EditMask:='000/00/00;1;_'時就一定要輸入,不能空白. 使用EditMask:='999/99/99;1;_'時如不輸入資料時,則值為 ___/__/__ ,並不是Null. 使用EditMask:='999/99/99;0;_'時如不輸入資料時,則值是Null. Try See See! ===================== 努力,相信會獲得美麗! 忻晟
謝謝cashxin2002 前輩的回覆 但是使用EditMask:='999/99/99;0;_'時如輸入為092/01/01 存入資料庫的資料為0920101並不是092/01/01 不知用那種方法較方便 1.資料庫存入092/01/01 2.資料庫存入0920101 3.資料庫存入[日期型態]2003/01/01,但要輸入時又希望能輸入092/01/01??不會?? 非常非常的謝謝你,因為有你這世界變的更美好 ☆ ^_^ ☆ °∴°﹒☆°.﹒‧°∴°﹒°.﹒‧°∴°﹒ ﹒‧°∴°﹒☆°.﹒‧°∴°﹒°.﹒‧°∴°﹒﹒‧°∴°﹒☆°.
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-09-08 11:53:12 IP:63.84.xxx.xxx 未訂閱
Hi.    使用EditMask:='999/99/99;0;_'時: 如輸入為092/01/01, 存入資料庫的資料為0920101 如輸入為Null, 存入資料庫的資料為Null; //The mask will not been save in database 使用EditMask:='999/99/99;1;_'時: 如輸入為092/01/01, 存入資料庫的資料為092/01/01 如輸入為Null, 存入資料庫的資料為___/__/__; //The mask will been save in database I think the [1] Selection(資料庫存入092/01/01 ) is easier use. P.S Change your date style in settings/Control Panel/Regional Option Try See See! ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
jeffreck
高階會員


發表:247
回覆:340
積分:197
註冊:2003-01-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-09-08 13:11:06 IP:61.218.xxx.xxx 未訂閱
引言: Hi. 使用EditMask:='999/99/99;0;_'時: 如輸入為092/01/01, 存入資料庫的資料為0920101 如輸入為Null, 存入資料庫的資料為Null; //The mask will not been save in database 使用EditMask:='999/99/99;1;_'時: 如輸入為092/01/01, 存入資料庫的資料為092/01/01 如輸入為Null, 存入資料庫的資料為___/__/__; //The mask will been save in database I think the [1] Selection(資料庫存入092/01/01 ) is easier use. P.S Change your date style in settings/Control Panel/Regional Option Try See See! ===================== 努力,相信會獲得美麗! 忻晟
謝謝cashxin2002 前輩的回覆 但我還是有問題?? >>使用EditMask:='999/99/99;1;_'時: >>如輸入為092/01/01, 存入資料庫的資料為092/01/01 >>如輸入為Null, 存入資料庫的資料為___/__/__; 那有何方法修改資料庫為存入Null 非常非常的謝謝你,因為有你這世界變的更美好 ☆ ^_^ ☆ °∴°﹒☆°.﹒‧°∴°﹒°.﹒‧°∴°﹒ ﹒‧°∴°﹒☆°.﹒‧°∴°﹒°.﹒‧°∴°﹒﹒‧°∴°﹒☆°.
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-09-08 13:29:09 IP:63.84.xxx.xxx 未訂閱
您好!    使用EditMask:='999/99/99;1;_'時: 遮罩內容(___/__/__)將被當作資料內容存入資料庫. 即使是沒有輸入資料內容, 此欄位將以___/__/__的作為資料內容存入資料庫. 使用EditMask:='999/99/99;0;_'時: 遮罩內容(___/__/__)將不被當作資料內容存入資料庫. 如果沒有輸入資料內容, 此欄位的值為Null. 就您的問題而言, 您可以使用后種用法, 至于您所說的Null問題, 選用的方法還是蠻多的, 要看您的要求為何. 如果一定要有資料輸入, 即此欄位不允許為Null, 則可在程式中加入強制讓使用者輸入內容, 否則不予做Post動作. 如果不一定要有資料輸入, 且如果沒有資料輸入時以Null存入資料庫, 后者的設定格式'999/99/99;0;_'則會將資料存入為Null. 參考看看! ===================== 努力,相信會獲得美麗! 忻晟 發表人 - cashxin2002 於 2003/09/08 13:32:26
------
忻晟
Jack0323
初階會員


發表:22
回覆:70
積分:28
註冊:2002-03-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-09-09 21:09:51 IP:211.74.xxx.xxx 未訂閱
我的做法都是使用字串型態 而且存入的資料一律存西元日期 但是要自己寫一些FUNCTION去處理顯示民國日期的函式 這種做法已經用很久了,還没出過什麼問題 而且也可以自己設定參數 決定要顯示的是民國日期或是西元日期
t0922610976
一般會員


發表:11
回覆:16
積分:15
註冊:2003-09-02

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-09-10 10:44:13 IP:61.16.xxx.xxx 未訂閱
不用花腦筋去想了 就是開字串就對了... 因為開日期型態在某些時候,因為數值精度的關係會出錯 造成在更新時 where 條件的新舊值會不符 前端顯示可用 TField 的 OnGetText OnSetText 處理轉換問題
系統時間:2024-06-26 10:42:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!