程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> Mysql中使用DATE列的問題

Mysql中使用DATE列的問題

編輯:關於MYSQL數據庫

       DATE值的格式是'YYYY-MM-DD'。按照標准的SQL,不允許其他格式。在UPDATE表達式以及SELECT語句的WHERE子句中應使用該格式。例如:

      MySQL> SELECT * FROM tbl_name WHERE date >= '2003-05-05';

      為了方便,如果日期是在數值環境下使用的,MySQL會自動將日期轉換為數值(反之亦然)。它還具有相當的智能,在更新時或在與TIMESTAMP、DATE或DATETIME列比較日期的WHERE子句中,允許“寬松的”字符串形式(“寬松形式”表示,任何標點字符均能用作各部分之間的分隔符。例如,'2004-08-15'和'2004#08#15'是等同的)。MySQL還能轉換不含任何分隔符的字符串(如'20040815'),前體是它必須是有意義的日期。

      使用<、<=、=、>=、>、或BETWEEN操作符將DATE、TIME、DATETIME或TIMESTAMP與常量字符串進行比較時,MySQL通常會將字符串轉換為內部長整數,以便進行快速比較(以及略為“寬松”的字符串檢查)。但是,該轉換具有下述例外:

      比較兩列時

      將DATE、TIME、DATETIME或TIMESTAMP列與表達式進行比較時

      使用其他比較方法時,如IN或STRCMP()。

      對於這些例外情形,會將對象轉換為字符串並執行字符串比較,采用該方式進行比較。

      為了保持安全,假定按字符串比較字符串,如果你打算比較臨時值和字符串,將使用恰當的字符串函數。

      對於特殊日期'0000-00-00',能夠以'0000-00-00'形式保存和檢索。在MyODBC中使用'0000-00-00'日期時,對於MyODBC 2.50.12或更高版本,該日期將被自動轉換為NULL,這是因為ODBC不能處理這類日期。

      由於MySQL能夠執行前面所介紹的轉換,下述語句均能正常工作:

      mysql> INSERT INTO tbl_name (idate) VALUES (19970505);

      mysql> INSERT INTO tbl_name (idate) VALUES ('19970505');

      mysql> INSERT INTO tbl_name (idate) VALUES ('97-05-05');

      mysql> INSERT INTO tbl_name (idate) VALUES ('1997.05.05');

      mysql> INSERT INTO tbl_name (idate) VALUES ('1997 05 05');

      mysql> INSERT INTO tbl_name (idate) VALUES ('0000-00-00');

      mysql> SELECT idate FROM tbl_name WHERE idate >= '1997-05-05';

      mysql> SELECT idate FROM tbl_name WHERE idate >= 19970505;

      mysql> SELECT MOD(idate,100) FROM tbl_name WHERE idate >= 19970505;

      mysql> SELECT idate FROM tbl_name WHERE idate >= '19970505';

            :更多精彩教程請關注三聯教程 頻道,

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved