SQL 获取日期中 15 日第一次出现的情况

标签 sql sql-server sql-server-2005 sql-server-2008

我需要编写一个函数或 SP 来返回 15 号的第一次出现。例如,如果我传递日期为 5 月 8 日,那么它应该返回 5 月 15 日。如果我通过了 5 月 30 日,那么它应该会在 6 月 15 日返回。

最佳答案

一种方式

   DECLARE @d DATETIME
    SELECT @d = '20110508'
    --SELECT @d = '20110530'


    SELECT  CASE WHEN DAY(@d)  > 15 
    THEN  dateadd(mm, datediff(mm, 0, @d)+1, 0) + 14
    ELSE dateadd(mm, datediff(mm, 0, @d)+0, 0)+ 14 end

关于SQL 获取日期中 15 日第一次出现的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5993384/

相关文章:

php - MySQL 透视将行变成列

sql - 将多个表合并在一起,正确的连接类型?

sql-server - 不允许从数据类型 varchar 到 varbinary(max) 的隐式转换。使用转换

sql-server - 应用商店的数据库架构指南

sql - 表格驱动的付款时间表

Hibernate自动递增id sql server 2005

sql - 随机选择并不总是返回单行

mysql - 问 : Efficiently get the oldest value, 大表中每组的最新值和计数?

sql-server-2005 - 是否可以将SQLExpress 2005和2008安装在同一台计算机上而不会出现问题?

php - 无论指定或给定什么数据类型,bindParam 都能正常工作