4

今日以降の日付で MySQL データベースからレコードを取得したいと考えています。データは VARCHAR (fieldname datum) としてデータベースに記録されるため、STR_TO_DATE を使用する必要があります。ただし、次のクエリは機能しません。

SELECT * FROM Diensten WHERE STR_TO_DATE('datum', '%m-%d-%Y') >= DATE(NOW()) ORDER BY STR_TO_DATE('datum', '%m-%d-%Y') ASC

CURDATE() も試しましたが、どちらも機能しません。

クエリは WHERE 部分なしで機能しています。クエリを修正する方法はありますか?

4

1 に答える 1

2

列名が一重引用符を使用して引用されているため、この式STR_TO_DATE('datum', '%m-%d-%Y')は戻ります。of 列はNULL変換されませんが、文字列は変換されるため、結果が値になります。valuedatumdatumNULL

修正するには、列名を囲む一重引用符を削除するだけです。

SELECT * 
FROM Diensten 
WHERE STR_TO_DATE(datum, '%d-%m-%Y') >= CURDATE()
ORDER BY STR_TO_DATE(datum, '%d-%m-%Y') ASC
于 2013-07-20T16:41:13.597 に答える