Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.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
Php 如何在或<;,之间使用&燃气轮机;DATETIME字段中的运算符_Php_Mysql_Date_Datetime - Fatal编程技术网

Php 如何在或<;,之间使用&燃气轮机;DATETIME字段中的运算符

Php 如何在或<;,之间使用&燃气轮机;DATETIME字段中的运算符,php,mysql,date,datetime,Php,Mysql,Date,Datetime,我有一个名为data的表,它有一个名为'datetime'的字段。该字段设置为varchar。此字段的值如下所示: 2014-12-04.2300, 2014-12-04.2200, 2014-12-04.1600 这是(date.24小时时间)格式。如何选择2014-12-02和2014-12-05这两个日期之间的所有记录? 我尝试了以下方法: SELECT * FROM `data` WHERE `datetime` BETWEEN 2014-12-02.0000 AND 2014-12-

我有一个名为data的表,它有一个名为
'datetime'
的字段。该字段设置为varchar。此字段的值如下所示:

2014-12-04.2300,
2014-12-04.2200,
2014-12-04.1600
这是
(date.24小时时间)
格式。如何选择2014-12-02和2014-12-05这两个日期之间的所有记录?

我尝试了以下方法:

SELECT * FROM `data` WHERE `datetime` BETWEEN 2014-12-02.0000 AND 2014-12-05.2300 
但它不工作,返回空。知道怎么做吗


谢谢。

如果要选择两个日期之间的记录,请尝试此查询

SELECT * FROM `data` WHERE `datetime` BETWEEN date('2014-12-02') AND date('2014-12-05')
如果是varchar字段,请使用下面的查询

SELECT * FROM `data` WHERE date(left(`datetime`, 10)) BETWEEN date('2014-12-02') AND date('2014-12-05')

引用这些值。现在它们是算术表达式。MySQL将
2014-12-02.0000
解释为
2014减去12减去2.0000
,这一点都没有错

SELECT * FROM `data` WHERE `datetime` BETWEEN '2014-12-02.0000' AND '2014-12-05.2300'

您是否尝试引用值并删除
.0000
,即
'2014-12-02'
是否可以将这些列转换为本机
日期时间类型?这样做可以避免你将来的头痛。我已经尝试过移除0000s。我无法将其转换为通常的日期时间类型。我知道这很头痛:(我也会把
datetime
转换成date,我认为也应该这样做。也许
date(左(
datetime
,10))
这是一个varchar字段,所以我认为他必须这样做。他们仍然错了,因为正如我在回答中所说,
2014-12-02
正是
2000