首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server查询优化日期计算

SQL Server查询优化日期计算
EN

Stack Overflow用户
提问于 2013-05-04 23:04:42
回答 1查看 99关注 0票数 0

我正在尝试找到一种更有效的方式来重写我的查询。

有什么建议吗?我目前也在考虑将会计月份名称显示为数字本身,然后比较并返回月份名称。

代码语言:javascript
复制
(case                                   --proj_end_fis_mon
    when (MYMW.mfg_year_no = FYQM.fiscal_year_no and MYMW.mfg_month_no = 12)
    then                    
        (convert(varchar,(MYMW.mfg_year_no-1))+'-'+(case
            when FM.fiscal_month_name like 'Jan%' then '01'
            when FM.fiscal_month_name like 'Feb%' then '02'
            when FM.fiscal_month_name like 'Mar%' then '03'
            when FM.fiscal_month_name like 'Apr%' then '04'
            when FM.fiscal_month_name like 'May' then '05'
            when FM.fiscal_month_name like 'June' then '06'
            when FM.fiscal_month_name like 'July' then '07'
            when FM.fiscal_month_name like 'Aug%' then '08'
            when FM.fiscal_month_name like 'Sep%' then '09'
            when FM.fiscal_month_name like 'Oct%' then '10'
            when FM.fiscal_month_name like 'Nov%' then '11'
            when FM.fiscal_month_name like 'Dec%' then '12'
            end))
    else
    (convert(varchar,MYMW.mfg_year_no)+'-'+(case
    when FM.fiscal_month_name like 'Jan%' then '01'
    when FM.fiscal_month_name like 'Feb%' then '02'
    when FM.fiscal_month_name like 'Mar%' then '03'
    when FM.fiscal_month_name like 'Apr%' then '04'
    when FM.fiscal_month_name like 'May' then '05'
    when FM.fiscal_month_name like 'June' then '06'
    when FM.fiscal_month_name like 'July' then '07'
    when FM.fiscal_month_name like 'Aug%' then '08'
    when FM.fiscal_month_name like 'Sep%' then '09'
    when FM.fiscal_month_name like 'Oct%' then '10'
    when FM.fiscal_month_name like 'Nov%' then '11'
    when FM.fiscal_month_name like 'Dec%' then '12'
    end))


    end)

下面是我的表的样子:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-05 00:16:09

假设您有可用的会计月数:

代码语言:javascript
复制
Convert( VarChar(4), MYMW.mfg_year_no -
    case when MYMW.mfg_year_no = FYQM.fiscal_year_no and MYMW.mfg_month_no = 12 then 1
      else 0 end ) +
    '-' + Right('0' + Convert( VarChar(2), FM.fiscal_month_no ), 2 )
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16375689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档