指定された2つの日付の間のデータベースの日付を比較したい。データベースの列はDATETIMEであり、日時形式ではなく、日付形式のみと比較したいと思います。
SELECT * FROM `players` WHERE CONVERT(CHAR(10),us_reg_date,120) >= '2000-07-05' AND CONVERT(CHAR(10),us_reg_date,120) <= '2011-11-10'
上記のSQLを実行すると、このエラーが発生します。
SQL構文にエラーがあります。使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください 'us_reg_date、120)> =' 2000-07-05 'AND CONVERT(CHAR(10)、us_reg_date、120)<=' 2011- 'atライン1
この問題はどのように修正できますか?
以下のクエリを試すことができます、
select * from players
where
us_reg_date between '2000-07-05'
and
DATE_ADD('2011-11-10',INTERVAL 1 DAY)
つまり、日付を文字列に変換するための SQL Server構文 です。 MySQLでは、 DATE 関数を使用して、日時から日付を抽出できます。
SELECT *
FROM players
WHERE DATE(us_reg_date) BETWEEN '2000-07-05' AND '2011-11-10'
ただし、列us_reg_date
のインデックスを利用したい場合は、代わりにこれを試してください。
SELECT *
FROM players
WHERE us_reg_date >= '2000-07-05'
AND us_reg_date < '2011-11-10' + interval 1 day
これは私のために働く:
select date_format(date(starttime),'%Y-%m-%d') from data
where date(starttime) >= date '2012-11-02';
フォーマット文字列 '%Y-%m-%d'および入力日付のフォーマットに注意してください。
やあみんな私は答えを得たあなたの助けに感謝します。
ここにコードがあります......
SELECT * FROM table
WHERE STR_TO_DATE(column, '%d/%m/%Y')
BETWEEN STR_TO_DATE('29/01/15', '%d/%m/%Y')
AND STR_TO_DATE('07/10/15', '%d/%m/%Y')
これは私のために働いたものです:
select * from table
where column
BETWEEN STR_TO_DATE('29/01/15', '%d/%m/%Y')
AND STR_TO_DATE('07/10/15', '%d/%m/%Y')
ロードに時間がかかるため、以前のソリューションからSTR_TO_DATE(column、 '%d /%m /%Y')を変更する必要があったことに注意してください