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

    佛为心,道为骨,儒为表,大度看世界; 技在手,能在身,思在脑,从容过生活; 三千年读史,不外功名利禄; 九万里悟道,终归诗酒田园;
  • 相关阅读:
    理解“统一编址与独立编址、I/O端口与I/O内存” arm
    JS + CSS 美化 select 下拉框表单
    关于 ecshop common.js 文件 自动随机输出 Powered by ECShop
    Zend Framework 入门随笔 配置与注意事项
    Delphi编程保存数据到Excel文件(4):使用NativeExcel2控件
    ORACLE 最大连接数的问题1
    一生delphi编程经验(转)
    XLSReadWriteII控件来完成10×10的乘法表
    Delphi 动态调整打印机纸张大小
    Linux下Oracle重启和修改连接数3
  • 原文地址:https://www.cnblogs.com/taofx/p/4136925.html
Copyright © 2011-2022 走看看