2つの日付の間のテーブルからレコードを選択しようとすると、問題が発生します。
m次のクエリを使用
select * from xxx where dates between '10/10/2012' and '10/12/2012'
このクエリは私には機能しますが、日付が2013年1月1日のような形式の場合は機能しません。
plzは私の問題をできるだけ早く解決します。
2つの日付の間のテーブルからレコードを選択しようとすると、問題が発生します。
m次のクエリを使用
select * from xxx where dates between '10/10/2012' and '10/12/2012'
このクエリは私には機能しますが、日付が2013年1月1日のような形式の場合は機能しません。
plzは私の問題をできるだけ早く解決します。
このソリューションは、述語の条件に対して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'
これを試して
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') ;
デフォルトでは、Mysql は「日付」データ型の値を「YYYY/MM/DD」形式で格納して返します。したがって、日付を別の形式で表示したい場合は、スクリプト言語の要件に従って日付値をフォーマットする必要があります
ちなみに、列のデータ型と値を格納する形式は何ですか。
これを使って
select * from xxx where dates between '10/oct/2012' and '10/dec/2012'
文字列を入力しているので、形式に応じて月の名前を付けます。
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 + "'";
これを試して:
select * from xxx where dates between convert(datetime,'10/10/2012',103) and convert(dattime,'10/12/2012',103)