sql - 在 SQL 中创建动态日期范围

标签 sql sql-server date date-range

如何构造一个 SQL 语句,该语句始终根据 GETDATE() 返回上一年 7 月 1 日的开始日期和当年 6 月 30 日的结束日期?现在我有

    Dateadd(yy, Datediff(yy,1,GETDATE())-1,0) AS StartDate,
DateAdd(dd,-1,Dateadd(yy, Datediff(yy,0,GETDATE()),0)) AS EndDate

将分别返回 2012 年 1 月 1 日和 2013 年 12 月 31 日。

最佳答案

您可以在当前脚本中添加另一个 DATEADD():

SELECT DATEADD(month,6,DATEADD(yy, DATEDIFF(yy,1,GETDATE())-1,0)) AS StartDate
      ,DATEADD(month,6,DATEADD(dd,-1,DATEADD(yy, DATEDIFF(yy,0,GETDATE()),0))) AS EndDate

关于sql - 在 SQL 中创建动态日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17410071/

相关文章:

php - 更新重复记录保持1条记录不变的SQL语句

Mysql 上一个日期

java - Hibernate slqjdbc4 列带空格

MySQL如果第一个字符是数字

mysql - mysql中如何将列转换为数组?

sql-server - SQL Server : extracting the middle of a string

sql - 如何在 SQL 中使用 NULL 或空字符串

javascript - 为什么这个日期转换需要在月份上加1?

MySQL:根据付款计算订阅的剩余天数

java - 如何使用 SimpleDateFormat 格式化字符串 "2016-03-23T11:23:11.305+01:00"