繁体   English   中英

在$ sql查询中使用date()进行过滤

[英]Filter with date() on $sql query

我在理解将转换转换为unixtime并将其转换为特定月份和年份的位置时遇到了问题。

$sql = "SELECT * FROM logs WHERE clientid = '5604' AND timestamp = 'Jan 13' ";

我需要在哪里放置date()函数以将时间戳过滤为指定的月份和年份?

首先,MySQL中的日期垃圾必须遵循以下格式之一:

  • YY * MM * DD
  • YYYY * MM * DD

*表示“任何 非数字 非字母数字字符或完全没有字符”。

YYYYYY是具有两位或四位数的年份。

MMDD是月份和日期。

然后,如果要获取特定日期的结果,可以执行以下操作:

... WHERE DATE(timestamp_field) = '2013-01-13';

但是实际上,此查询无法使用timestamp_field上的索引。 这种方法更好,因为可以使用timestamp_field index:

... WHERE timestamp_field >= '2013-01-13' AND timestamp_field < '2013-01-14';

创建两个变量。 使1等于所需的年份月份的第一天,使第二等于下一年月份的第一天。 然后就是这样:

where timestamp >= your first variable
and timestamp < your second variable

这种方法将处理您的时间戳字段的时间部分,并且比您尝试使用函数的执行速度更快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM