2012-03-28 7 views
0

MySQLの日付形式 - 日付に照会難易私はPHPで、このような単純なクエリを実行したい

SELECT noslots FROM calender WHERE coursedate = '01-01-2012'; 

しかし私の日付が標準YYYY-MM-DD形式でデータベースに格納されているので、明らかに私は結果が得られません。

私は取扱説明書を読んで試してみましたが、初心者のために、それが正しい情報を抽出することは困難である

は、あなたが提供することができます任意の助けをありがとう!

[=

答えて

3

あなたは使用することができます -

SELECT noslots 
FROM calender 
WHERE coursedate = STR_TO_DATE('01-01-2012', '%d-%m-%Y'); 

あなたの日付形式に応じて、周りの%dと%mを切り替えることが必要になる場合があります。

+0

fantastic。コメントは先に私が心配してくれました..ありがとうございます – Phil

+0

この日付がユーザ入力の場合は、SQLに渡される前に適切に消毒されていることを確認してください。 – nnichols

1

MySQLの唯一サポートされている日付/時刻の形式がyyyy-mm-dd hh:mm:ssです。他の文字列を渡すことはできませんし、日付として適切に解析されます。日付をmysql形式に正しくフォーマットするのはあなた次第です。つまり、クエリに2012-01-01を渡す必要があります。

+0

ので、私はそれを照会していて、それを変更する(TO_DATEを使用して、Oracleのように)方法はありませんか? – Phil

+0

よろしくお願いします。ありがとう – Phil

+0

あなたは外部から持ってきたデータのSQLで文字列操作を行うのは良い考えではありません。 –

0

私はPHPのdate()strtotime()機能を使用します。

mysql_query("SELECT `noslots` FROM `calender` WHERE `coursedate` = '" . date('Y-m-d H:i:s', strtotime('01-01-2012')) . "'"); 
関連する問題