4

2つの日付の間のテーブルからレコードを選択しようとすると、問題が発生します。

m次のクエリを使用

select * from xxx where dates between '10/10/2012' and '10/12/2012'

このクエリは私には機能しますが、日付が2013年1月1日のような形式の場合は機能しません。

plzは私の問題をできるだけ早く解決します。

4

10 に答える 10

7

このソリューションは、述語の条件に対してCONVERT_IMPLICIT操作を提供します

SELECT * 
FROM xxx 
WHERE CAST(dates AS date) BETWEEN '1/1/2013' and '1/2/2013'

ここに画像の説明を入力してください

また

SELECT * 
FROM xxx 
WHERE CONVERT(date, dates, 101) BETWEEN '1/1/2013' and '1/2/2013'

ここに画像の説明を入力してください

SQLFiddleのデモ

于 2013-02-04T08:11:36.970 に答える
2

これを試して

SELECT * 
FROM xxx 
WHERE dates BETWEEN STR_TO_DATE('10/10/2012', '%m/%d/%Y') 
  AND STR_TO_DATE('10/12/2012', '%m/%d/%Y')  ;

また

SELECT * 
FROM xxx 
WHERE STR_TO_DATE(dates , '%m/%d/%Y') BETWEEN STR_TO_DATE('10/10/2012', '%m/%d/%Y') 
  AND STR_TO_DATE('10/12/2012', '%m/%d/%Y')  ;
于 2013-02-04T07:36:56.630 に答える
0

デフォルトでは、Mysql は「日付」データ型の値を「YYYY/MM/DD」形式で格納して返します。したがって、日付を別の形式で表示したい場合は、スクリプト言語の要件に従って日付値をフォーマットする必要があります

ちなみに、列のデータ型と値を格納する形式は何ですか。

于 2013-02-04T07:31:18.780 に答える
-2

これを使って

select * from xxx where dates between '10/oct/2012' and '10/dec/2012'

文字列を入力しているので、形式に応じて月の名前を付けます。

于 2013-02-04T07:20:48.460 に答える
-2
DateTime dt1 = this.dateTimePicker1.Value.Date;
DateTime dt2 = this.dateTimePicker2.Value.Date.AddMinutes(1440);
String query = "SELECT * FROM student WHERE sdate BETWEEN '" + dt1 + "' AND '" + dt2 + "'";
于 2014-05-03T21:44:53.030 に答える
-2

これを試して:

select * from xxx where dates between convert(datetime,'10/10/2012',103) and convert(dattime,'10/12/2012',103)
于 2013-02-04T12:51:32.673 に答える