zoukankan      html  css  js  c++  java
  • sql语句中获取datetime任何部分

    sql语句中获取datetime的日期部分 
    sql语句中 经常操作操作datetime类型数据。今天在写一个存储过程的时候需要将 一个datetime的值的 日期部分提取出来。网上有许多这方面的介绍。

    主要方法还是通过日期格式的转换来获取。如下:

    select left(convert(varchar,getdate(),21),7): 2014-05
    select left(convert(varchar,getdate(),21),4): 2014
    select convert(varchar(10),year('{1}')+'-'+convert(varchar(10),MONTH('{1}')) 
     Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
    Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
    Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
    Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
    Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
    Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
    Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
    Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
    Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
    Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
    Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
    Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
    Select CONVERT(varchar(100), GETDATE(), 12): 060516
    Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
    Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
    Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
    Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
    Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
    Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
    Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
    Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
    Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
    Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
    Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
    Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
    Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
    Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
    Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
    Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
    Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
    Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
    Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
    Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
    Select CONVERT(varchar(100), GETDATE(), 112): 20060516
    Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
    Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
    Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
    Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
    Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
    Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
    Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM

    如此可以采用:

    select CONVERT(VARCHAR(100),GETDATE(),111)

    select CONVERT(VARCHAR(100),GETDATE(),23)

    当然可以通过 :

    Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46

    Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
    Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
    Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547


    等来 获取 datetime 的时间部分。


    --年
    select number as code ,CONVERT(varchar(5),number)+'年' as name
            from master..spt_values
           where type='P'
             and number between 2004 and YEAR(GETDATE())  order by convert(varchar(7),YEAR(GETDATE()),120) desc
            
            
     --年月               
    select
    convert(varchar(7),dateadd(month,hh.number,'2004-01-01'),120) code,
    cast(year(dateadd(month,hh.number,'2004-01-01'))as varchar(4))+'年'+cast(month(dateadd(month,hh.number,'2004-01-01')) as varchar(2))+'月' name
    from (select number
            from master..spt_values
           where type='P'
             and number between 0 and datediff(MONTH,'2004-01-01'
             ,cast(YEAR(GETDATE()) as varchar(4))+'-'+CAST(month(GETDATE()) as varchar(2))+'-01')) hh
             order by convert(varchar(7),dateadd(month,hh.number,'2004-01-01'),120) desc

    --年季度
    select distinct year(dateadd(month,hh.number,'2004-01-01')) [year],
    cast(year(dateadd(month,hh.number,'2004-01-01'))as varchar(4))+'-'
    +cast(datename(quarter,(dateadd(month,hh.number,'2004-01-01'))) as varchar(2)) code,
    cast(year(dateadd(month,hh.number,'2004-01-01'))as varchar(4))+'年'
    +cast(datename(quarter,(dateadd(month,hh.number,'2004-01-01'))) as varchar(2))+'季度' name
    from (select number
            from master..spt_values
           where type='P'
             and number between 0 and datediff(MONTH,'2004-01-01'
             ,cast(YEAR(GETDATE()) as varchar(4))+'-'+CAST(month(GETDATE()) as varchar(2))+'-01')) hh
             order by year(dateadd(month,hh.number,'2004-01-01')) desc

    佛为心,道为骨,儒为表,大度看世界; 技在手,能在身,思在脑,从容过生活; 三千年读史,不外功名利禄; 九万里悟道,终归诗酒田园;
  • 相关阅读:
    获取计算机名称
    imagelist用法
    cxgrid的ImageComboBox属性学习
    MlskincolorButton使用方法
    delphi实现窗体组建随窗体大小改变而改变
    判断路径下文件是否存在
    Delphi 按Esc快捷键退出程序的简单方法
    pagecontrol
    LinkedList源码解析
    ArrayList源码分析
  • 原文地址:https://www.cnblogs.com/taofx/p/4136925.html
Copyright © 2011-2022 走看看