1

私はウェブやstackoverlowでたくさんの投稿や質問をしました。以下の解決策はありませんでした

jobsフィールドのあるテーブルがあります

仕事

INT |   datetime    - Format
----------------
id  |   post_date   - Fields
-----------------
1   |   2012-05-30 09:59:58
2   |   2012-05-30 09:59:57
3   |   2012-05-25 09:59:57
4   |   2012-05-24 09:59:57
5   |   2012-05-06 09:59:57

そして、以下は私が試したmysqlクエリですが、結果は得られません。空のレコードになります

クエリ1

select * from jobs
where post_date BETWEEN CAST('2012-05-01' as DATE) and CAST('2012-05-30' as DATE)

クエリ2

select * from jobs
where post_date BETWEEN  
STR_TO_DATE('2012-05-30 09:59:58','YYYY-MM-DD HH:MM:SS') AND STR_TO_DATE('2012-05-1 09:59:58','YYYY-MM-DD HH:MM:SS')

クエリ3

select * from jobs
where post_date BETWEEN  '2012-05-30 09:59:58' AND '2012-05-01 09:59:58'

さて、どうすれば日付の間に結果を得ることができますか、これについての助けが必要です。

4

1 に答える 1

2

クエリ3は、必要なものに最も近いものです。ここに問題が修正されています:

select * from jobs
where post_date BETWEEN '2012-05-30 09:59:58' AND '2012-06-01 09:59:58'

問題は範囲の終わりにあります-あなたは持っています:

'2012-05-01 09:59:58' -- This is the first of May

しかし、あなたは必要です

'2012-06-01 09:59:58' -- This is the first of June

範囲の終わりが開始の前にあるため、クエリ3は何も返しません。

于 2012-06-01T07:01:35.830 に答える