sql - 带有 GETDATE() 的 CASE 语句

标签 sql sql-server-2008 case getdate

想知道您是否可以在此处的语法方面提供一些帮助。尝试将变量设置为月份值,具体取决于该变量是否超过该月的 25 天。

如果是,则使用当前月份(例如,如果日期是 10 月 28 日,变量“月份”将为 10,但如果日期是 10 月 24 日,变量“月份”将为 9)。到目前为止,我已经得到以下内容:

select a
case
    when (SELECT DAY(GETDATE()) >= 25
    then a = (SELECT MONTH(GETDATE()))
    else a = (SELECT MONTH(GETDATE()) - 1)
end

我知道您不能使用小于或大于符号,因为 case 语句仅用于评估 (=)?谁能建议另一种方法来做到这一点?

谢谢。

最佳答案

select @your_variable = case when DAY(GETDATE()) = 25
                             then MONTH(GETDATE())
                             else MONTH(GETDATE()) - 1
                        end 

关于sql - 带有 GETDATE() 的 CASE 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19154305/

相关文章:

mysql - mysqli 中用于选择和加入的案例用法

php - codeigniter 的哪个 ORM?

sql - 如何安装 sql server 2008 的 pubs 或 Northwind 数据库?

sql-server-2005 - SQL Server Management Studio 2008 智能感知

c# - SQL Server 2008 回归时间的 DATE 数据类型!

postgresql - 使用 CASE WHEN 选择两列

sql - 在 SQL 中,Join 实际上是一个 Intersection?它也是一个链接还是一个 "Sideway Union"?

sql - 将多行组合在一起

mysql - 显示 MySQL 中的 phpMyAdmin 数据库

javascript - 我需要动态地使用此代码