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

Използване на MySql между клауза с дати

Фабио всъщност не е прав, ако часове, минути и секунди ще бъдат включени това

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

става вътрешно

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

Така че всъщност просто избирате 1 секунда от 2013-06-06, не цял ден!

Същото и с BETWEEN разбира се. За да получите целия ден от 2013-06-06, ще трябва да пишете

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

или

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

Давайте, опитайте го сами (или го вижте на живо в 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. Въпрос за дизайн на DB относно външни ключове с нула и нормализиране

  2. Получавайте WP публикации на базата на множество двойки мета ключ/стойност, използвайки IN

  3. MySQL използва ли съществуващи индекси за създаване на нови индекси?

  4. Не мога да накарам формата си за вход, за да се свържа, да взаимодейства правилно с mySQL базата данни

  5. Как да актуализирате графика с помощта на matplotlib