MYSQLの日付関数で、

NOW(),SYSDATE(),CURRENT_DATE()の違いを教えて下さい。
perlを使用した場合、取得する情報に違いがあると聞いたことがありますが、
詳細を忘れてしまいました。
ご存知の方、ご教授よろしくお願い致します。

回答の条件
  • 1人2回まで
  • 登録:2006/12/18 19:52:16
  • 終了:2006/12/25 19:55:03

回答(2件)

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402006/12/18 20:49:26

ポイント35pt

http://dev.mysql.com/doc/refman/4.1/ja/date-and-time-functions.h...

perl は日付処理には一切手を出さないので、純粋に MySQL 関数としての違いだけになります。


結果として now() と sysdate() は同じ日付+時刻。

CURRENT_DATE() は日付のみを表示します。

NOW()

文字列と数値のどちらのコンテキストで使用されているかに応じて、'YYYY-MM-DD HH:MM:SS' または YYYYMMDDHHMMSS 形式の値として、現在の日付と時刻を返す。

mysql> SELECT NOW();

-> '1997-12-15 23:50:26'

mysql> SELECT NOW() + 0;

-> 19971215235026

SYSDATE()

SYSDATE() は NOW() のシノニム。

CURRENT_DATE , CURRENT_DATE()

CURRENT_DATE と CURRENT_DATE() は CURDATE() のシノニム。

CURDATE()

文字列と数値のどちらのコンテキストで使用されているかに応じて、'YYYY-MM-DD' または YYYYMMDD 形式の値として、現在の日付を返す。

mysql> SELECT CURDATE();

-> '1997-12-15'

mysql> SELECT CURDATE() + 0;

-> 19971215

id:atugari

細かい説明ありがとうございました。

特に、関数に「+0」をつけると結果が異なるというところが、勉強になりました。

2006/12/19 20:27:14
id:iww No.2

いわわ回答回数101ベストアンサー獲得回数102006/12/19 09:12:01

ポイント35pt

http://dev.mysql.com/doc/refman/4.1/ja/date-and-time-functions.h...


CURRENT_DATE()は年月日を、NOW()は年月日時分秒を返します。

SYSDATE()はNOW()と同じです。

返される形式は、そのカラムが何かによって変わってきます。

ふつーに使うと 2007-12-19 09:11:00 という形式です。

id:atugari

回答ありがとうございました。

2006/12/19 20:27:51
  • id:nanamasuhoshi
    http://dev.mysql.com/doc/refman/5.1/ja/date-and-time-functions.html

    http://d.hatena.ne.jp/nTeTs/20070813/1186988550

    NOW() は、ステートメントが実行を開始する時間を示す定数時間を戻します。
    SYSDATE() は、それが実行された時間を戻します。

    だそうな。バージョンによると。

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません