SQL 使用动态 WHERE 时间戳查询

SQL query with dynamic WHERE timestamp

如何获取查询的这一部分以按时间范围获取值?

一个table的例子:

  select * from tablename where timeregister between '2017-01-11' And '2017-01-30';

我怎样才能让时间寄存器为最近 7 天? 我在尝试这个:

select * from tablename where timeregister(NOW(), timeregister) <= 7;

使用这个:

 SELECT * FROM table WHERE timeregister >= DATE(NOW()) - INTERVAL 7 DAY

试试这个....

<?php 
    $s_date = date('Y-m-d');
    $e_date = date('Y-m-d',strtotime('+7 days'));
    $sql = 'SELECT * FROM tablename WHERE DATE_FORMAT(timeregister, "%Y-%m-%d") BETWEEN "'.$s_date.'" AND "'.$e_date.'"';
?>

您使用的是 MSSQL 还是 MYSQL?如果是 MSSQL,则可以使用 DATEADD 函数。请参阅下面的脚本:

SELECT * FROM table WHERE timeregister between DATEADD(DD,-7,GETDATE()) and GETDATE()