zoukankan      html  css  js  c++  java
  • sql 经典面试题

     如果数据库里两个日期型字段d1,d2,怎样用sql语句列出按月的所有区间,比如表结构如下
    localid    d1          d2
    1         2014-1-15    2014-3-6
    2         2014-7-15    2014-10-15

    转换成
    localid    d1          d2
    1         2014-1-15    2014-1-31
    1         2014-2-1     2014-2-28
    1         2014-3-1     2014-3-6
    2         2014-7-15    2014-7-31
    2         2014-8-1     2014-8-31
    2         2014-9-1     2014-9-30
    2         2014-10-1    2014-10-15,
    第一种方案:
     
    第二种方案:
     drop table #t
     declare @d as date
     set @d = @d1
     select convert(varchar(10),dateadd(mm,number ,convert(varchar(8),@d,120)+'01'),120) as dt into #t
     from master..spt_values
     where type='P' 
     and dateadd(mm,number,convert(varchar(8),@d,120)+'01')<=dateadd(dd,-1,convert(varchar(8),dateadd(mm,DATEDIFF (mm,@d1,@d2)+1,@d),120)+'01')
     
    如有兴趣,加qq群围观:337335820
  • 相关阅读:
    在 Cocos2d-x 中添加自己的微博链接
    关于屏幕适配
    [抽象工厂模式]在游戏开发中的应用
    字符串排列组合
    子矩阵最大和
    网易游戏编程题第二题
    动态规划,最大子段和
    C++的四种显示类型转换
    多线程编程
    预处理等等
  • 原文地址:https://www.cnblogs.com/xinanheishao/p/4196161.html
Copyright © 2011-2022 走看看