【问题标题】:15 days before today in SQL Server今天前 15 天在 SQL Server 中
【发布时间】:2016-03-30 14:16:50
【问题描述】:

我正在尝试从我们的数据库中的加载日期查找具有特定条件的特定作业列表,并且我也必须使用内部联接。 我想在我的存储过程中有最后 15 天的 Job #。 如何设置仅在过去 15 天内自动更改的 LoadDate。

这是我的查询:

select pr.Job_Number,
       Count(ItemCode1) as [Total Records], 
       si.PackageComplete
from 
    processed_record pr
inner join scanner_2 si on pr.ItemCode1 = si.ItemCode1
where 
    pr.Format_Name like '%Lin%' and pr.LoadDate >= '03/01/2016' 
group by 
    pr.Job_Number, si.PackageComplete
order by 
    si.PackageComplete, pr.Job_Number

【问题讨论】:

标签: sql-server count days


【解决方案1】:

您的查询应如下所示:

select pr.Job_Number,
       Count(ItemCode1) as [Total Records], 
       si.PackageComplete
from 
    processed_record pr
inner join scanner_2 si on pr.ItemCode1 = si.ItemCode1
where 
    pr.Format_Name like '%Lin%' and pr.LoadDate >= DATEADD(DAY,-15,GETDATE())
group by 
    pr.Job_Number, si.PackageComplete
order by 
    si.PackageComplete, pr.Job_Number

GETDATE() 将获取当前日期,DATEADD() 函数将添加(减去)-15 天。

【讨论】:

  • 在 loaddate (datetime, null) 列中的值类似于 2015-11-18 15:47:20.310,所以使用上述查询我没有得到预期的结果。
  • 我认为你的问题不清楚。您要求提供 15 天的数据,但在查询中您没有选择 loaddate 列。你期望什么作为输出?为什么说“2015-11-18 15:47:20.310”有问题?
  • 我们有特定的列名“LoadDate”,它捕获了上面示例中每条记录的日期和时间。
【解决方案2】:

你可以使用

CONVERT(date, DATEADD(DAY, -15, GETDATE()))

插入您的修复日期值。

使用此代码,您将收到当前日期 GetDate() 并减去 15 天 DateAdd(day, -15, DateValue)

最后你将它转换成日期类型Convert(date, value) 否则你也会得到当前时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-23
    • 2012-07-08
    • 2018-02-24
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多