<< 40个实用的轻量级JavaScript库 ISAPI Rewrite url结尾加斜杠 >>

1.select getdate();

     返回当前日期和时间;可以设置得到各种时间格式.

      实例:

                         select getdate()

                         ---------------------------
                        03 12 2009 5:47PM

2.select datename(datepart,'20030101');

    以字符串形式返回指定部分的值,转换成合适的名称;

     实例:

                        select datename(dd,'20030101')

                         ------------------------------
                        1        

3.select datepart(datepart,'20030101');

    作为整数返回指定值的指定部分;即取指 定时间的某一个部分,年月天时分秒.

     实例:   

                         select datepart(dd,'20030101')

                         -----------
                        1          

4.select datediff(datepart,日期1,日期2);

    返回日期1和日期2的时间差,即日期2-日期1。

      实例:

                            select datediff(dd,'20030501','20030102')

                            -----------
                            -119

5.dateadd(datepart,数值表达式,日期);

    计算指定时间,再加上表达式指定的时间长度.

      实例:

                              select dateadd(yy,1,'20030101')

                               ---------------------------
                              01 1 2004 12:00AM  

    

      datepart 的参数值:
      年     yy
      季度    qq
     月     mm
      每年中的天 dy
      天     dd或day
      星期             wk
      星期天           dw
      小时             hh
      分钟              mi
      秒                 ss
      毫秒             ms

6.取星期几

    set datefirst 1
    select datepart(weekday,getdate()) --weekday

 

7.字符串时间

    select getdate() --'03/11/12'
    select convert(char,getdate(),101) --‘09/27/2003'
    select convert(char,getdate(),102) -- '2003.11.12'
    select convert(char,getdate(),103) -- '27/09/2003'
    select convert(char,getdate(),104) -- '27.09.2003'
    select convert(char,getdate(),105) -- '27-09-2003'
    select convert(char,getdate(),106) -- '27 Sep 2003'
    select convert(char,getdate(),107) --'Sep 27, 2003'
    select convert(char,getdate(),108) --'11:16:06'
    select convert(char,getdate(),109) --'Sep 27 2003 11:16:28:746AM'
    select convert(char,getdate(),110) --'09-27-2003'
    select convert(char,getdate(),111) --'2003/09/27'
    select convert(char,getdate(),112) --'20030927'
    select rtrim(convert(char,getdate(),102))+' '+(convert(char,getdate(),108)) -- '2003.11.12 11:03:41'

8.整数时间


    select convert(int,convert(char(10),getdate(),112)) -- 20031112
    select datepart(hh,getdate())*10000 + datepart(mi,getdate())*100 + datepart(ss,getdate()) -- 110646

 

9.时间格式 "YYYY.MM.DD HH:MI:SS" 转换为 "YYYYMMDDHHMISS"


declare @a datetime,@tmp varchar(20),@tmp1 varchar(20)
select @a=convert(datetime,'2004.08.03 12:12:12')
select @tmp=convert(char(10),@a,112)
select @tmp
select @tmp1=convert(char(10),datepart(hh,@a)*10000 + datepart(mi,@a)*100 + datepart(ss,@a))
select @tmp1
select @tmp=@tmp+@tmp1
select @tmp

 

10.当月最后一天


declare
@tmpstr varchar(10)
@mm int,
@premm int,
@curmmlastday varchar(10)
begin
select @mm=datepart(month,getdate())--当月
select @premm=datepart(month,dateadd(month,-1,getdate())) --上个月
if (@mm>=1 and @mm<=8)
select @tmpstr=convert(char(4),datepart(year,getdate()))+'.0'+convert(char(1),datepart(month,dateadd(month,1,getdate())))+'.'+'01'
else if (@mm>=9 and @mm<=11)
select @tmpstr=convert(char(4),datepart(year,getdate()))+'.'+convert(char(2),datepart(month,dateadd(month,1,getdate())))+'.'+'01'
else
select @tmpstr=convert(char(4),datepart(year,dateadd(year,1,getdate())))+'.0'+convert(char(1),datepart(month,dateadd(month,1,getdate())))+'.'+'01'
select @curmmlastday=convert(char(10),dateadd(day,-1,@tmpstr),102) --当月最后一天
end

        在实际应该中,我们应该将比较复杂的表达式转化为较简单的表达式,这样所汇数据的速度就比较快比如说,

        我要取某表每十天之内数据如下:

       表1的结构:

           Column_name     Type            Length

           ---------------    ---------------         -----------

              NAME               char                      20

             SJ                     money                    8

             RQ                   datetime                 8

    方法一:

           select * from 表1

            where datediff(day,RQ,convert(datetime,convert(char(20),getdate(),102)))<=10

    方法二:     

           select *    from 表1

            where RQ>=dateadd(dd,-10,getdate()) AND RQ<=getdate()

        两种方法都能实现该功能,但第一种的方法比第二种方法查询速度要慢的多。

11.日期分量与缩写

    日期分量      缩写                  值
      year              yy            1753-9999(对于smalldatetime为2079)
      quarter          qq           1-4
     month            mm         1-12
     week              wk          1-54
     day                dd          1-31
     dayofyear      dy           1-366
     weekday        dw          1-7(周日到周六)
     hour               hh          0-23
     Minute           mi          0-59
     second           ss          0-59
     millisecond     ms         0-999
    

     注:如果只输入2位数的年份,<50为20xx,>=50为19xx。
             ②毫秒前可用带一个冒号或者句号。如果带冒号,数字表示毫秒值,如果带句号,数字表示浮点数的秒值(一个数表示0.x秒,2个数表示0.xx秒,3个数表示0.xxx秒)。

12.convert() 函数

     convert (datatype [(length) | (precision[, scale])] [null | not null], expression [, style])    

     参数名             说明
     datatype           目标数据类型。不能使用用户自定义数据类型。
     length               可选参数,可用于 char、nchar、varchar、nvarchar、binary、varbinary数据类型。如果不提高此参数,对于字符和二进制数据,截断为 30个字符。字符和二进制数据可以具有的最大长度是255个字节。
     precision           是number或者decimal数据类型中有效位的个数。对浮点数据类型,是指尾数中二进制位的个数。如果不提供精度,对number或者decimal使用缺省值18。
     scale                是number或者decimal数据类型中小数点右侧的位数。缺省为0。

     null | not null     指定结果的可为空性。如不指定,结果与表达式具有相同的可为空性。
     expression        从一种数据类型或数据格式转换为另一种数据类型或格式的值。
     style                  用于已转换数据的显示格式。如果将 datatime 和 smalldatetime 数据转换为字符类型,使用下表种的样式编号来指定显示格式。

     Style参数说明如下表:


注:缺省值(0或100)和9(109)总是返回世纪值(yyyy)。

     实例: select convert(char(12), getdate(), 3)
     输出:将当前日期转换为样式“3” dd/mm/yy

本文转自: http://hi.baidu.com/lei_luo/blog/item/023545c369111e5fb319a84b.html

Add comment

  Country flag

biuquote
Loading

赞助商链接

©2009 - 2011 Themes by redfox66.com Powered by BlogEngine.NET ver:2.5.0.8 Log in
无觅相关文章插件,快速提升流量