Mysql
 sql >> база данни >  >> RDS >> Mysql

Таблица Сравнение на колона за дати с генериран списък с дати - MYSQL

Втора АКТУАЛИЗАЦИЯ:

Сега го накарах да работи във всяка версия:

select
*
from
Payroll
inner join 
(
SELECT DATE(DATE_ADD('2012-10-05', 
INTERVAL @i:[email protected]+14 DAY) ) AS dateP
FROM Payroll, (SELECT @i:=0) r
where @i < DATEDIFF(now(), date '2012-10-05') 
) sq on Payroll.datestamp = sq.dateP

Просто трябва да инициализирате променливата вътре в заявката.

АКТУАЛИЗИРАНЕ:

Странното е, че този работи на моята локална машина без проблеми (версия 5.1.41-3ubuntu12.7-log), но не и във вашия SQLfiddle.

set @i:= 0;
select
*
from
Payroll
inner join 
(
SELECT DATE(DATE_ADD('2012-10-05', 
INTERVAL @i:[email protected]+14 DAY) ) AS dateP
FROM Payroll
where @i < DATEDIFF(now(), date '2012-10-05') 
) sq on Payroll.datestamp = sq.dateP

КРАЙ НА АКТУАЛИЗАЦИЯ

Опитвали ли сте го така?

set @i:= 0;

SELECT distinct datestamp FROM payroll
WHERE STR_TO_DATE(datestamp, '%M, %d %Y %H:%i:%f') in (
SELECT DATE(ADDDATE('2012-10-05', 
INTERVAL @i:[email protected]+14 DAY) ) AS dateP
FROM payroll
where @i < DATEDIFF(now(), date '2012-10-05') 
)
;

Предполагам, че DATE() функцията е неуспешна, защото сте varchar (нали?) Датата не е във формат ISO. Следователно трябва да използвате STR_TO_DATE() функция.

За точно използване на STR_TO_DATE() прочетете тук и тук . Не съм сигурен за микросекундната част.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Получаване на MySQL път в командния ред

  2. Ecto създаването на уникален индекс не бе успешно за Mysql/Mariadb

  3. Django / MySQL:Как да правим автономни транзакции (завършване само на подгрупа от заявки)?

  4. Вмъкнете select MySQL с подготвени оператори

  5. Разлика в необходимото време за вмъкване на InnoDB/MyISAM записи