c#疑難(二)之Access資料庫日期資料型別的使用方法和其日期函式簡介
Access
Access 資料庫的Date格式欄位值必須由一對 # 符號標識,即當Access與日期常量比較的時候,日期常量應由##包圍。
舉例一:
查詢2001-01-01至2001-01-31(即該年一月份)生日的客戶資料:
1.Select * From Customer Where BirthDay
Between #2002-01-01# and #2002-01-31#
2.SELECT * FROM Customer WHERE Year(Birthday)=2001 and
month(Birthday)=1 AND
Day(Birthday)>=1 AND Day(Birthday)
3.SELECT * FROM Customer WHERE FORMAT(Birthday,"yymmdd")
BETWEEN "20010101" AND "20010131"
如果放入字串內,注意雙引號要變成單引號,應改為:
string strSql = "SELECT * FROM Customer WHERE FORMAT(Birthday,'yymmdd')
BETWEEN "20010101" AND "20010131"";
舉例二:
往表Customer表插入日期資料:
1.常量插入:
insert into Customer(Name, Birthday) values('Tom' ,#2002-01-32#);
2.變數插入:
insert into Customer(Name, Birthday) values('Tom' ,'" + DateTime.Now.ToString("d") + "');
同理,變數引數化更新,也一樣。
Update Customer set Birthday='"+ DateTime.Now.ToString("d") +"' where Name='Tom';
舉例三:
Access日期變數比較:從表Customer中查詢生日日期為“85-3-18”的顧客姓名
string strTime = "85-3-18";
string strSql= "select Name from Customer where FORMAT(Birthday,'yy-mm-dd')=
Access日期變數的處理,要先轉化,後比較,如上。
其他例子,如下:
FORMAT(Birthday,'yymmdd')
Year(Birthday)
Day(Birthday)
month(Birthday)
再說說一個注意事項:
1.如果你的列名,是關鍵字。比如Time ,那麼應該加上轉義字元[],如[Time],否則會失敗。
下面附錄Access日期函式(用法看舉例一):
ACCESS欄位中設定預設日期值函式大全年Year(Now())
季度DatePart("q",Now())
月Month(Now())
週數 DatePart("ww",Now())
日Day(Now())
星期幾DatePart("w",Now(),2)
時Hour(Now())
分Minute(Now())
秒Second(Now())
當前時間Now()
當前日期Date()