了解MySql中的日期

时间:2013-07-02 19:26:49

标签: 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');

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

为什么这不归还奶酪和酸奶?它什么都不返回。

SELECT * FROM  Stuff Where Sell_by <= 2013-07-04;

但这会归还一切吗?

SELECT * FROM  Stuff Where Sell_by >= 2013-07-04;

3 个答案:

答案 0 :(得分:7)

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

将日期表达式放在单引号中(&#39; 2013-07-14&#39;),你应该没问题。

答案 1 :(得分:5)

我认为你缺少引号;试试这个:

SELECT * FROM  Stuff Where Sell_by <= '2013-07-04';

答案 2 :(得分:3)

在日期周围使用引号,如:

SELECT * FROM  Stuff Where Sell_by <= '2013-07-04';