risposta-alla-domanda-sullo-sviluppo-web-bd.com

Confronta le date in MySQL

Voglio confrontare una data da un database compreso tra 2 date date La colonna del database è DATETIME e voglio confrontarla solo con il formato della data, non con il formato 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'

Ottengo questo errore quando eseguo l'SQL sopra:

Hai un errore nella sintassi SQL; controlla il manuale che corrisponde a la tua versione del server MySQL per il sintassi corretta da usare vicino a 'us_reg_date, 120)> =' 2000-07-05 'AND CONVERT (CHAR (10), us_reg_date, 120) <= '2011-' alla riga 1

Come può essere risolto questo problema?

66
NVG

Puoi provare qui sotto,

select * from players
where 
    us_reg_date between '2000-07-05'
and
    DATE_ADD('2011-11-10',INTERVAL 1 DAY)
66
Nik

Questo è Sintassi di SQL Server per convertire una data in una stringa. In MySQL puoi usare la funzione DATE per estrarre la data da un datetime:

SELECT *
FROM players
WHERE DATE(us_reg_date) BETWEEN '2000-07-05' AND '2011-11-10'

Ma se vuoi approfittare di un indice sulla colonna us_reg_date, puoi provare questo:

SELECT *
FROM players
WHERE us_reg_date >= '2000-07-05'
  AND us_reg_date < '2011-11-10' + interval 1 day
72
Mark Byers

Questo funziona per me:

select date_format(date(starttime),'%Y-%m-%d') from data
where date(starttime) >= date '2012-11-02';

Notare la stringa di formato '% Y-% m-% d' e il formato della data di inserimento.

7
Rahatur

hey ragazzi grazie per il vostro aiuto ho avuto la risposta.

ecco il codice .......

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')
6
Gurjeet Singh

questo è quello che ha funzionato per me:

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')

Tieni presente che ho dovuto modificare STR_TO_DATE (colonna, '% d /% m /% Y') delle soluzioni precedenti, poiché era necessario impiegare anni per caricare

0