sql - 选择从今天到本月最后 15 日的数据?

标签 sql sql-server tsql

我想选择从今天到最后 15 日(即本月或上个月)的一系列数据。这将如何在 TSQL 中完成?

正在关注 Get last Friday's Date unless today is Friday using T-SQL看来我至少必须使用 DATEDIFF

我正在考虑构建一个日期字符串,例如:

set @date='yyyy-mm-15'

但是 yyyymm 不能简单地是当前年/月,以防它必须回顾一个月/年。

最佳答案

这应该给你你想要的

SELECT *
FROM YourTable
WHERE YourDate > CAST((
            CASE 
                WHEN DAY(getdate()) < 15
                    THEN (CAST(YEAR(GETDATE()) AS CHAR(4)) + CAST(MONTH(dateadd(month, - 1, getdate())) AS CHAR(2)) + '15')
                ELSE CAST(YEAR(GETDATE()) AS CHAR(4)) + CAST(MONTH(GETDATE()) AS CHAR(2)) + '15'
                END
            ) AS DATETIME)

编辑 将 WHEN DAY(getdate()) > 15 更改为 WHEN DAY(getdate()) < 15,因为结果是相反的:)

关于sql - 选择从今天到本月最后 15 日的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13589553/

相关文章:

mysql - 添加正确的 MySQL 触发器

sql-server - 按连接表上的性能问题排序

sql-server - 使用临时表更新 ValidFrom 和 ValidTo 字段会导致奇怪的行为

sql - 为什么 Entity Framework 生成的查询运行时间是直接运行相同查询的两倍?

mysql - 忽略具有零值的计数不适用于子查询

SQL - 安全地将 BIGINT 向下转换为 INT

c# - 使用 Entity Framework 在 SQL 中选择 UNTIL

sql - xlock、rowlock、holdlock 是否正确?

python - 如何使用python在sql中选择一长串id

sql-server - 如何使用SQL全文搜索索引小单词(3个字母)?