如何选择特定时间的信息?我正在使用phpmyadmin



在此处输入图像描述

DATEInvoice的数据类型为VARCHAR

从上图中,如果我想选择特定时间的发票信息,比如从2020年1月12日00:00:00到2020年13月12日23:59:00,我该怎么写?我试过很多种写作方式。例如,

SELECT * FROM INVOICE WHERE DATEINVOICE BETWEEN To_date('01-12-2020 00:00:00','dd-mm-yyyy HH24:MI:SS') AND To_date('13-12-2020 23:59:00','dd-mm-yyyy HH24:MI:SS')

**但是我得到的结果是返回零行。希望有人能帮助我,我在这方面遇到了麻烦。

首先,您可以将逻辑简化为:

WHERE DATEINVOICE >= '2020-01-12' AND
DATEINVOICE < '2020-01-14'

在某些数据库中,您应该使用(标准(DATE关键字来标识日期常量:

WHERE DATEINVOICE >= DATE '2020-01-12' AND
DATEINVOICE < DATE '2020-01-14'

这假设DATEINVOICE作为有效的日期时间/时间戳值存储在数据库中。如果它是一个字符串,那么它的类型是错误的。您应该修复您的数据模型。如果其他人创建了这样一个损坏的数据模型,那么您可以转换WHERE子句中的值:

WHERE TO_DATE(DATEINVOICE, 'dd-mm-yyyy HH24:MI:SS') >= '2020-01-12' AND
TO_DATE(DATEINVOICE, 'dd-mm-yyyy HH24:MI:SS') < '2020-01-14'

然而,真正的工作应该是修复数据模型。

可以使用请尝试MySQL的DATE((函数:

WHERE DATE(datetime) = '2009-10-20'

你也可以试试这个:

WHERE datetime LIKE '2009-10-20%'

最新更新