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

时间:2013-07-05 14:25:05

标签: php sql date

我无法理解将转换放在哪里以获取unixtime并将其转换为特定的月份和年份。

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

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

2 个答案:

答案 0 :(得分:1)

首先,MySQL中的date litterals必须遵循以下格式之一:

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

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

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

MMDD是月份和日期数字。

然后,如果您想获得特定日期的结果,您可以这样做:

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

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

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

答案 1 :(得分:0)

创建两个变量。使1等于您想要的年份的第1天,第2天等于下一年的第1天。那就是这个:

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

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