網頁

2010年11月19日 星期五

MySQL DATETIME 時間

MySQL Date 函數

下面的表格列出了MySQL 中最重要的內建日期函數:


SQL Date 數據類型

MySQL 使用下列數據類型在數據庫中存儲日期或日期/時間值:
  • DATE - 格式YYYY-MM-DD
  • DATETIME - 格式: YYYY-MM-DD HH:MM:SS
  • TIMESTAMP - 格式: YYYY-MM-DD HH:MM:SS
  • YEAR - 格式YYYY 或YY
SQL Server 使用下列數據類型在數據庫中存儲日期或日期/時間值:
  • DATE - 格式YYYY-MM-DD
  • DATETIME - 格式: YYYY-MM-DD HH:MM:SS
  • SMALLDATETIME - 格式: YYYY-MM-DD HH:MM:SS
  • TIMESTAMP - 格式: 唯一的數字


例子 1

下面是SELECT 語句:

SELECT NOW(),CURDATE(),CURTIME()

結果類似:

NOW()                                      CURDATE()                      CURTIME()
2008-12-29 16:25:46            2008-12-29                     16:25:46


如果需要INSERT時,系統自動加入時間,要將DATETIME欄位的default value設為NOW();

但是如果這樣執行時會跳出錯誤訊息,因為MySQL的文件上面有說,default value只能設為常數不能設為function。


"The DEFAULT value  clause in a data type specification indicates a default value for a
column. With one exception, the default value must be a constant; it cannot be a function
or an expression. This means, for example, that you cannot set the default for a date
column to be the value of a function such as NOW()  or CURRENT_DATE."
後來爬了爬文,有網友提供另一種和DATETIME幾乎類似的方法
->使用TIMESTAMP型態的column,將其default value設定CURRENT_TIMESTAMP。
每次在TABLE裡面新增一筆資料時,系統會自動在該欄位加入目前時間。
這樣在MySQL環境下是可以成功執行的。


參考資料:

沒有留言:

張貼留言