Mysql中使用DATE列的問題

來源:互聯網
上載者:User

   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';

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.