データベースに日付がvarchar(2011年9月11日)として保存されています。私はこのようなクエリを作成しようとしています:日付を文字列として保存
$result=mysql_query("SELECT * FROM post WHERE YEAR(STR_TO_DATE(datum,'%e %M %Y') ='2011')") or die(mysql_error());
返すのはNULL
です。
データベースに日付がvarchar(2011年9月11日)として保存されています。私はこのようなクエリを作成しようとしています:日付を文字列として保存
$result=mysql_query("SELECT * FROM post WHERE YEAR(STR_TO_DATE(datum,'%e %M %Y') ='2011')") or die(mysql_error());
返すのはNULL
です。
フィールドの種類がvarcharの場合は、この形式を使用できます。
$result=mysql_query("SELECT * FROM post WHERE datum LIKE '%2011'") or die(mysql_error());
それはちょうど私が探していたものではありませんが、それは仕事をします、ありがとう – InTry
@InTryは私の答えをチェックアウト、これは実際にあなたが探しているものです –
...あなたがvarchar()
としてデータベースに追加しているので、あなたが答えを得ることはありませんそしてちょうどMySQLフォーラムからこのフォーラムの投稿を参照し、解決策を修正select * from table name where column name="2011"
を入力STR_TO_DATE(datum,'%e %M %Y');
の必要はありませんあなたの要望。
あなたは、将来のために、データベースのテーブルにdatetime型の列の型を変更する必要があります。たとえば、加算、減算、カウントダウンなどを行うにはdatetimeが必要な場合があります。したがって、比較や検証をしたい場合は、これが簡単になります。したがって、以下のようにmysqlステートメントを簡単に行うことができます。
SELECT something FROM tbl_name WHERE column_name < = date_col;
率直に言って、私はちょうど 'date'データ型にフィールドを変換すると思います。 – JJJ