sql - 帮我建一个 SQL select 语句

标签 sql

SQL 不是我最擅长的,我需要一些帮助来构建 select 语句。

基本上,这是我的要求。该表存储名称列表和在表中输入名称时的时间戳。一周内可以多次输入姓名,但每天只能输入一次。

我希望选择查询返回过去 7 天内(但不是今天)任何时候输入的姓名。

要获取今天输入的姓名列表,这是我的声明:

Select * from table where Date(timestamp) = Date(now())

并获取过去 7 天(不包括今天)输入的姓名列表:

Select * from table where (Date(now())- Date(timestamp) < 7) and (date(timestamp) != date(now()))

如果第一个查询返回一个集合或结果,比如A,第二个查询返回B,我怎么得到

B-A

最佳答案

如果您使用的是 SQL Server,请试试这个:

 SELECT * FROM Table
 WHERE   Timestamp BETWEEN  
        dateadd(day,datediff(day,0,getdate()),-7), 
    AND dateadd(day,datediff(day,0,getdate()),0)

这可确保时间戳介于 7 天前的 00:00 和今天的 00:00 之间。今天时间大于 00:00 的条目将不包括在内。

关于sql - 帮我建一个 SQL select 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4609620/

相关文章:

java - CLOB 到二进制流的转换

sql - 查询自由文本字段

MySQL 使用 IN 子句和子查询进行更新

sql - VBA在访问功能中按日期搜索

sql - 如何在不单独指定的情况下对所有列的 SQL 结果进行排序?

sql - Join 或 Where 子句方法在限制结果集方面是否更有效?

mysql - MySql 中的子查询 group by

sql - 进入存储过程 - 由用户取消

mysql - 从多个表中检索记录,有些是不同的,有些不是

php - 过滤选择查询以仅返回在连接表中没有对应记录的记录