• 日期函数与转型


    今天到今年最后一天,输出每天的星期

    --今年最后一天
    DECLARE @lastDay_year VARCHAR(20)
    --今天
    DECLARE @nowDay VARCHAR(20)
    
    SELECT  @lastDay_year = CONVERT(VARCHAR(10), DATEADD(ms, -3,DATEADD(yy,DATEDIFF(yy, 0,GETDATE()) + 1,0)), 120) ;
    
    SELECT  @nowDay = CONVERT(VARCHAR(10), DATEADD(dd, DATEDIFF(dd, 0, GETDATE()),0), 120) ;
    --其实上一句的效果和下方这个是一样的
    --SELECT  @nowDay = CONVERT(VARCHAR(10), GETDATE() , 120)
    WHILE ( @nowDay <= @lastDay_year ) 
        BEGIN
            DECLARE @nowDay_week INT
            --星期
            SELECT  @nowDay_week = DATEPART(weekday, @nowDay)
            PRINT @nowDay + '  ' + CAST(@nowDay_week AS VARCHAR) + '  '+ DATENAME(weekday, @nowDay)    
            SELECT  @nowDay = CONVERT(VARCHAR(10), DATEADD(d, 1,CONVERT(VARCHAR(10), @nowDay, 120)), 120) ;
        END

     结果:

    2013-10-31  5  Thursday
    2013-11-01  6  Friday
    2013-11-02  7  Saturday
    2013-11-03  1  Sunday
    2013-11-04  2  Monday
    2013-11-05  3  Tuesday
    2013-11-06  4  Wednesday
    2013-11-07  5  Thursday
    2013-11-08  6  Friday
    2013-11-09  7  Saturday
    2013-11-10  1  Sunday
    2013-11-11  2  Monday
    2013-11-12  3  Tuesday
    2013-11-13  4  Wednesday
    2013-11-14  5  Thursday
    2013-11-15  6  Friday
    2013-11-16  7  Saturday
    2013-11-17  1  Sunday
    2013-11-18  2  Monday

    主要用到的函数有


    GETDATE GETDATE() 函数从 SQL Server 返回当前的时间和日期。

    语法

    GETDATE()

    例子

    SELECT GETDATE() AS CurrentDateTime

    结果:

    2013-10-31 13:55:48.580


    DATEDIFF DATEDIFF() 函数返回两个日期之间的天数。

    语法

    DATEDIFF(datepart,startdate,enddate)

    startdate enddate 参数是合法的日期表达式。

    datepart 参数可以是下列的值:

    table 1

    datepart缩写
    yy, yyyy
    季度 qq, q
    mm, m
    年中的日 dy, y
    dd, d
    wk, ww
    星期 dw, w
    小时 hh
    分钟 mi, n
    ss, s
    毫秒 ms
    微妙 mcs
    纳秒 ns

    例子:

    SELECT DATEDIFF(day,'2013-10-29','2013-10-31')


    结果:

    2


    DATEADD DATEADD() 函数在日期中添加或减去指定的时间间隔。

    语法

    DATEADD(datepart,number,date)

    date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。

    datepart 参数可以是同table1的值

    例子:

        SELECT GETDATE()
        SELECT DATEADD(DAY,2,GETDATE())

    结果:

    2013-10-31 14:00:31.463
    
    2013-11-02 14:00:31.463


    DATEPART 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。

    语法:

    DATEPART(datepart,date)

    date 参数是合法的日期表达式。datepart 参数可以是上面table1的值:

    例子: 

    SELECT DATEPART(weekday,'2013-10-30 00:00:00.000')

    结果:

    4

    默认的星期一 是 2,下面的语句可设置从星期一开始计数

    -- 设置每周星期1为第1天
    SET datefirst 1 ;

    例子:

    SET DATEFIRST 1;
    SELECT DATEPART(weekday,'2013-10-30 00:00:00.000');

    结果:

    3


    DATENAME  返回代表指定日期的指定日期部分的字符串。

    语法:

    DATENAME ( datepart , date )

    date 参数是合法的日期表达式。datepart 参数可以是上面table1的值:

    例子:

    与 DATEPART 比较

    SELECT DATENAME(month, '2013-10-30 00:00:00.000')
    SELECT DATENAME(weekday, '2013-10-30 00:00:00.000')
    SELECT DATEPART(month, '2013-10-30 00:00:00.000')
    SELECT DATEPART(weekday, '2013-10-30 00:00:00.000')

    结果:

    October
    Wednesday
    10
    3


    CONVERT

    CONVERT() 函数是把日期转换为新数据类型的通用函数。

    CONVERT() 函数可以用不同的格式显示日期/时间数据。

    语法:

    CONVERT(data_type(length),data_to_be_converted,style)

    data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。

    可以使用的 style 值:

    Style IDStyle 格式
    100 或者 0 mon dd yyyy hh:miAM (或者 PM)
    101 mm/dd/yy
    102 yy.mm.dd
    103 dd/mm/yy
    104 dd.mm.yy
    105 dd-mm-yy
    106 dd mon yy
    107 Mon dd, yy
    108 hh:mm:ss
    109 或者 9 mon dd yyyy hh:mi:ss:mmmAM(或者 PM)
    110 mm-dd-yy
    111 yy/mm/dd
    112 yymmdd
    113 或者 13 dd mon yyyy hh:mm:ss:mmm(24h)
    114 hh:mi:ss:mmm(24h)
    120 或者 20 yyyy-mm-dd hh:mi:ss(24h)
    121 或者 21 yyyy-mm-dd hh:mi:ss.mmm(24h)
    126 yyyy-mm-ddThh:mm:ss.mmm(没有空格)
    130 dd mon yyyy hh:mi:ss:mmmAM
    131 dd/mm/yy hh:mi:ss:mmmAM

    例子:

    SELECT CONVERT(VARCHAR(19),GETDATE())
    SELECT CONVERT(VARCHAR(10),GETDATE(),120) 
    SELECT CONVERT(VARCHAR(25),GETDATE(),120)

    结果:

    Oct 31 2013  2:15PM
    2013-10-31
    2013-10-31 14:15:15


    CAST 将表达式由一种数据类型转换为另一种数据类型。 

     语法:

    CAST ( data_to_be_converted AS data_type(length) )

    data_to_be_converted 含有需要转换的值。data_type(length) 规定目标数据类型(带有可选的长度)。 

     例子:

    SELECT CAST(GETDATE()AS DATE)
    SELECT CAST(GETDATE()AS VARCHAR(20))
    


    结果:

    2013-10-31
    Oct 31 2013  2:34PM
  • 相关阅读:
    tornado开发学习之2.输入输出,数据库操作,内置模板,综合示例
    使用Python读取和写入mp3文件的id3v1信息
    在CentOS中部署Python和配置PyCharm开发环境
    Quartz Cron 表达式(时间格式的写法)
    使用Atomikos Transactions Essentials实现多数据源JTA分布式事务
    Grub4dos 硬盘引导 iso 文件
    NFS配置
    C++程序加载Flash动画
    在boost.foreach中操作迭代器
    WebContents类
  • 原文地址:https://www.cnblogs.com/Jolinson/p/3465766.html
Copyright © 2020-2023  润新知