2

「2013-5-13」のようなカスタム日付(動的ビルド/入力)があり
ますが、私のmysqlデータベースは「2013-05-13」として保存され
ているため、次のように取得しようとします

SELECT * FROM TBL WHERE XDATE='2013-5-13' >>> it return me ZERO result

しかし

SELECT * FROM TBL WHERE XDATE='2013-05-13' >>> it return me CORRECT result

これをmysqlステートメントで直接解決するにはどうすればよいですか?

4

8 に答える 8

2

使用するDATE_FORMAT

DATE_FORMAT(`XDATE`,'%Y-%c-%d')

クエリ

SELECT * FROM TBL WHERE DATE_FORMAT(`XDATE`, '%Y-%c-%d') = '2013-5-13'

MySql DATE_FORMAT ドキュメント

%c  Month, numeric (0..12)
于 2013-07-30T07:52:59.667 に答える
1

このクエリを使用してください:-

SELECT * FROM TBL WHERE UNIX_TIMESTAMP(XDATE)=strtotime('2013-5-13')
于 2013-07-30T07:57:00.600 に答える
0

日付は次のようにフォーマットできます。

SELECT DATE_FORMAT('2013-5-13', '%Y-%m-%d');

WHERE 部分:

SELECT * FROM TBL WHERE XDATE=DATE_FORMAT('2013-5-13', '%Y-%m-%d')

MySQL ドキュメント

于 2013-07-30T07:52:49.010 に答える