1. 程式人生 > >c#疑難(二)之Access資料庫日期資料型別的使用方法和其日期函式簡介

c#疑難(二)之Access資料庫日期資料型別的使用方法和其日期函式簡介

Access

Access 資料庫的Date格式欄位值必須由一對 # 符號標識,即當Access與日期常量比較的時候,日期常量應由##包圍

舉例一:

查詢2001-01-012001-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)

<=31


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')=

'"+ strTime +"' ";

 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()