了解MySql中的日期

JVM*_*VMX 2 mysql

我似乎缺少一些基本的东西.我是一个来自旧的深奥的法国数据库系统(4D)的新难民,我是mySQL的新手.

鉴于以下数据库:

CREATE  TABLE `stuff` (
  `ID` INT NOT NULL AUTO_INCREMENT ,
  `Product` VARCHAR(45) NULL ,
  `Sell_by` DATE NULL ,
  PRIMARY KEY (`ID`) );


INSERT INTO `Stuff` (`Product`, `Sell_by`) VALUES ('Milk', '2013-05-16');
INSERT INTO `Stuff` (`Product`, `Sell_by`) VALUES ('Cheese', '2013-06-15');
INSERT INTO `Stuff` (`Product`, `Sell_by`) VALUES ('Yogurt', '2013-07-02');
INSERT INTO `Stuff` (`Product`, `Sell_by`) VALUES ('Bread', '2013-08-17');
INSERT INTO `Stuff` (`Product`, `Sell_by`) VALUES ('Twinkies', '2099-04-16');
Run Code Online (Sandbox Code Playgroud)

http://sqlfiddle.com/#!2/3ef48e/1

为什么不返回牛奶芝士和酸奶?它什么都不返回.

SELECT * FROM  Stuff Where Sell_by <= 2013-07-04;
Run Code Online (Sandbox Code Playgroud)

但这会归还一切吗?

SELECT * FROM  Stuff Where Sell_by >= 2013-07-04;
Run Code Online (Sandbox Code Playgroud)

Cur*_*urt 7

您的查询实际上并未检查日期,而是检查数字表达式(2013 - 7 - 4).

将日期表达式放在单引号('2013-07-14')中,你应该没问题.


ars*_*jaz 5

我觉得你缺少引号; 试试这个:

SELECT * FROM  Stuff Where Sell_by <= '2013-07-04';
Run Code Online (Sandbox Code Playgroud)