4

000-00-00 00:00:00(基本的にデフォルトの未設定値)である日時列を選択する簡単な方法を探しています。

次のクエリが機能しているようです。

SELECT * FROM myTable WHERE datetimeCol < 1

しかし、これは常に、異なるmysqlバージョン間で確実に機能しますか?

4

4 に答える 4

8

次のような「ゼロ」の日付を確認します。

SELECT * FROM myTable WHERE datetimeCol = CONVERT(0,DATETIME)

私は、不等式の述語よりも等式の述語を好みます。私の意図をより明確に伝えているようです。また、ステートメントにさらに述語があり、datetimeCol がインデックスの先頭の列である場合は、オプティマイザーが複数列のインデックスを利用するのに役立つ場合があります。

于 2013-01-23T22:26:27.903 に答える
4

これを試して:

SELECT * FROM myTable WHERE datetimeCol = '0000-00-00 00:00:00'

後から考えると明らかかもしれません;)

于 2013-01-23T21:31:10.020 に答える
3

値との比較について0:

datetimeCol = 0
于 2013-01-23T21:37:47.570 に答える
3

これを試して:

SELECT * FROM myTable WHERE UNIX_TIMESTAMP(datetimeCol) = 0

于 2015-01-15T04:06:21.137 に答える