Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

So sánh cột Ngày trong Bảng với danh sách ngày đã tạo - MYSQL

CẬP NHẬT thứ hai:

Bây giờ tôi đã làm cho nó hoạt động ở mọi phiên bản:

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

Bạn chỉ cần khởi tạo biến bên trong truy vấn.

CẬP NHẬT:

Điều kỳ lạ là, cái này hoạt động trên máy cục bộ của tôi mà không gặp sự cố (phiên bản 5.1.41-3ubuntu12.7-log), nhưng không hoạt động trong SQLfiddle của bạn.

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

KẾT THÚC CẬP NHẬT

Bạn đã thử nó như thế này chưa?

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

Tôi đoán là DATE() chức năng không thành công, vì bạn đang varchar (có phải không?) ngày không ở định dạng ISO. Do đó, bạn phải sử dụng STR_TO_DATE() chức năng.

Để sử dụng chính xác STR_TO_DATE() đọc tại đây tại đây . Tôi không chắc về phần micro giây.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cách tốt nhất để thực hiện quốc tế hóa trong php là gì?

  2. Tạo JSON phân cấp từ kết quả MySQL và PHP cho cây D3.js?

  3. Không thể tải LibreOffice:'com.mysql.jdbc.driver'

  4. Symfony không cung cấp các yêu cầu đồng thời

  5. MySQL # 1093 - Bạn không thể chỉ định bảng mục tiêu 'quà tặng' để cập nhật trong mệnh đề FROM