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

Sử dụng MySql giữa mệnh đề với ngày tháng

Fabio thực sự không đúng, nếu giờ, phút và giây sẽ được bao gồm điều này

where date >= '2013-06-01' and date <= '2013-06-06'

trở thành nội bộ

where date >= '2013-06-01 00:00:00' and date <= '2013-06-06 00:00:00'

Vì vậy, bạn thực sự chỉ chọn 1 giây của 2013-06-06, không cả ngày!

Tất nhiên với BETWEEN cũng vậy. Để có được cả ngày của năm 2013-06, bạn phải viết

where date >= '2013-06-01' and date <= '2013-06-06 23:59:59'

hoặc

where date BETWEEN '2013-06-01' AND '2013-06-06 23:59:59'

Hãy tiếp tục, tự mình thử (hoặc xem trực tiếp trong sqlfiddle ):

create table foo (my_date date, my_timestamp timestamp, my_datetime datetime);
insert into foo values ('2013-06-06', '2013-06-06 12:23:34', '2013-06-06 13:35:48');

select * from foo
where
my_date <= '2013-06-06'; /*returns row*/

select * from foo
where
my_timestamp <= '2013-06-06'; /*does NOT return row*/

select * from foo
where
my_datetime <= '2013-06-06'; /*does NOT return row*/

select * from foo
where
my_timestamp <= '2013-06-06 23:59:59';  /*returns row*/

select * from foo
where
my_datetime <= '2013-06-06 23:59:59';  /*returns row*/


  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 năm 2018:Có gì trong 8.0 và các quan sát khác

  2. 500 Lỗi máy chủ nội bộ?

  3. dbWriteTable (..., append =T) bị ghi đè trong R

  4. 1064:Lỗi cú pháp SQL thực thi truy vấn PyMySQL

  5. MySQL kết nối trên PHP