Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 选择日期(字符串日期)<;日期(带日期的文本列)_Mysql_Date_Datetime_Select - Fatal编程技术网

Mysql 选择日期(字符串日期)<;日期(带日期的文本列)

Mysql 选择日期(字符串日期)<;日期(带日期的文本列),mysql,date,datetime,select,Mysql,Date,Datetime,Select,我有一个表,其中有一列文本类型,我在插入查询中使用NOW()存储各种设置,包括日期 现在,我想从该表中获取该列在特定日期(例如2012-09-19)之前的所有行 通过DATE(DATE\u column)进行比较如果DATE\u column确实是DATE类型,则不需要对其运行DATE() 还要注意,在DATE_列上运行DATE()将阻止MySQL使用任何索引,因此您将执行表扫描 尝试: 其中日期栏

我有一个表,其中有一列文本类型,我在插入查询中使用
NOW()
存储各种设置,包括日期

现在,我想从该表中获取该列在特定日期(例如2012-09-19)之前的所有行


通过
DATE(DATE\u column)进行比较如果DATE\u column确实是DATE类型,则不需要对其运行DATE()

还要注意,在DATE_列上运行DATE()将阻止MySQL使用任何索引,因此您将执行表扫描

尝试:

其中日期栏<'2012-09-19'

避免在列类型周围放置函数(
WHERE FUNCTION(col)…
)。这会降低性能。您希望有一个具有域完整性的表,这意味着如果您存储的是日期,则它是
date
类型

要选择与
日期匹配的记录,只需将YYYY-MM-DD日期用引号括起来:

SELECT * FROM table WHERE date_column < '2012-09-19'
从日期列<'2012-09-19'所在的表格中选择*

您可以自己添加答案并接受它,这样人们就可以看到问题得到了回答。请查看STR_TO_DATE函数。但您需要使用where子句将行限制为日期在中的行。大概有一个属性名列。希望你在这件事上吸取了教训。这其中有两个典型的数据库设计错误。
SELECT * FROM table WHERE DATE(date_column)<DATE('2012-09-19');
WHERE date_column < '2012-09-19'
SELECT * FROM table WHERE date_column < '2012-09-19'