zoukankan      html  css  js  c++  java
  • SQL与ASP日期时间

    一.sql server日期时间函数

    1.   当前系统日期、时间
         select getdate()  

    2. dateadd   在向指定日期加上一段时间的基础上,返回新的 datetime 值
       例如:向日期加上2天
       select dateadd(day,2,'2004-10-15')   --返回:2004-10-17 00:00:00.000

    3. datediff 返回跨两个指定日期的日期和时间边界数。
       select datediff(day,'2004-09-01','2004-09-18')   --返回:17

    4. datepart 返回代表指定日期的指定日期部分的整数。
       SELECT DATEPART(month, '2004-10-15')   --返回 10

    5. datename 返回代表指定日期的指定日期部分的字符串
       SELECT datename(weekday, '2004-10-15')   --返回:星期五

    6. day(), month(),year() --可以与datepart对照一下

    select 当前日期=convert(varchar(10),getdate(),120)
    ,当前时间=convert(varchar(8),getdate(),114)

    select datename(dw,'2004-10-15')

    select 本年第多少周=datename(week,'2004-10-15')
           ,今天是周几=datename(weekday,'2004-10-15')

    函数 参数/功能
    GetDate( ) 返回系统目前的日期与时间
    DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1
    DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期
    DatePart (interval,date) 返回日期date中,interval指定部分所对应的整数值
    DateName (interval,date) 返回日期date中,interval指定部分所对应的字符串名称

    参数 interval的设定值如下:

    缩 写(Sql Server) (Access 和 ASP) 说明
    Year Yy yyyy 年 1753 ~ 9999
    Quarter Qq q   季 1 ~ 4
    Month Mm m   月1 ~ 12
    Day of year Dy y 一年的日数,一年中的第几日 1-366
    Day Dd d   日,1-31
    Weekday Dw w 一周的日数,一周中的第几日 1-7
    Week Wk ww 周,一年中的第几周 0 ~ 51
    Hour Hh h   时0 ~ 23
    Minute Mi n 分钟0 ~ 59
    Second Ss s 秒 0 ~ 59
    Millisecond Ms - 毫秒 0 ~ 999

    access 和 asp 中用date()和now()取得系统日期时间;其中DateDiff,DateAdd,DatePart也同是能用于Access和asp中,这些函数的用法也类似

    举例:
    1.GetDate() 用于sql server :select GetDate()

    2.DateDiff('s','2005-07-20','2005-7-25 22:56:32')返回值为 514592 秒
    DateDiff('d','2005-07-20','2005-7-25 22:56:32')返回值为 5 天

    3.DatePart('w','2005-7-25 22:56:32')返回值为 2 即星期一(周日为1,周六为7)
    DatePart('d','2005-7-25 22:56:32')返回值为 25即25号
    DatePart('y','2005-7-25 22:56:32')返回值为 206即这一年中第206天
    DatePart('yyyy','2005-7-25 22:56:32')返回值为 2005即2005年

    二.SQL日期查询
    select * from tbuser where datediff('d',registdate,Date())=0
    select * from tbuser where registdate between '2005-9-10 3:10:46' And '2005-9-10 10:10:46'

    三.SQL中CONVERT转化日期时间字符串函数的用法


    CONVERT函数格式:
    CONVERT(data_type,expression[,style])

    说明:
    此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)
    相互转换的时候才用到.

    例子:

    Select CONVERT(varchar(30),getdate(),101) now

    结果为
    now
    ---------------------------------------
    09/15/2001

    /////////////////////////////////////////////////////////////////////////////////////

    style数字在转换时间时的含义如下

    -------------------------------------------------------------------------------------------------
    Style(2位表示年份) | Style(4位表示年份) | 输入输出格式
    -------------------------------------------------------------------------------------------------
    - | 0 or 100 | mon dd yyyy hh:miAM(或PM)
    -------------------------------------------------------------------------------------------------
    1 | 101 | mm/dd/yy
    -------------------------------------------------------------------------------------------------
    2 | 102 | yy-mm-dd
    -------------------------------------------------------------------------------------------------
    3 | 103 | dd/mm/yy
    -------------------------------------------------------------------------------------------------
    4 | 104 | dd-mm-yy
    -------------------------------------------------------------------------------------------------
    5 | 105 | dd-mm-yy
    -------------------------------------------------------------------------------------------------
    6 | 106 | dd mon yy
    -------------------------------------------------------------------------------------------------
    7 | 107 | mon dd,yy
    -------------------------------------------------------------------------------------------------
    8 | 108 | hh:mm:ss
    -------------------------------------------------------------------------------------------------
    - | 9 or 109 | mon dd yyyy hh:mi:ss:mmmmAM(或PM)
    -------------------------------------------------------------------------------------------------
    10 | 110 | mm-dd-yy
    -------------------------------------------------------------------------------------------------
    11 | 111 | yy/mm/dd
    -------------------------------------------------------------------------------------------------
    12 | 112 | yymmdd
    -------------------------------------------------------------------------------------------------
    - | 13 or 113 | dd mon yyyy hh:mi:ss:mmm(24小时制)
    -------------------------------------------------------------------------------------------------
    14 | 114 | hh:mi:ss:mmm(24小时制)
    -------------------------------------------------------------------------------------------------
    - | 20 or 120 | yyyy-mm-dd hh:mi:ss(24小时制)
    -------------------------------------------------------------------------------------------------
    - | 21 or 121 | yyyy-mm-dd hh:mi:ss:mmm(24小时制)
    -------------------------------------------------------------------------------------------------

    sql语句中如何将datetime格式的日期转换为yy-mm-dd的一种方法:

    select substring(convert(char,registdate,120),1,10) as registdate from tbuser
    四.ASP日期时间函数
    <%=year(now)%><%=month(now)%><%=day(now)%><%=weekdayname(weekday(now))%>

    显示:
    今日是: 2003年10月31日 星期五

    VB有许多函数,使你可以得到各种格式的日期和时间。你已经用过了这些函数中的一个。你可以用函数NOW返回当前的日期和时间:

    At the tone,the time will bi: <%=NOW%>

    你应该注意,返回的日期和时间是你的Web服务器的系统时钟的日期和时间。如果身处纽约的某个人在看你的网页,他看到的日期和时间与她当地的日期和时间也许是不一至的。

    函数NOW同时返回日期和时间。如果你只想返回当前日期,你可以使用函数DATE。如果你只想返回当前时间,你可以使用函数TIME。例如:

    The date is :<%=DATE%>
    The time
    is :<%=TIME%>


    操作日期

    使用函数MONTH(),DAY(),WEEKDAY(),和YEAR(),你可以把一个日期分割成更小的部分。所有这些函数都以一个日期表达式作为参数,并返回一个数字。

    五.ASP中与SQLServer中日期时间有关的查询应用

    1、查询特定时间的记录的SQL语句

    --查询和今年相差八年的数据

    SELECT title_id,title
    FROM titles
    where datediff(year,pubdate,getdate())=8


    --ASP端的查询语句应写为

    strSQL="SELECT title_id,title"& _
    "FROM titles"& _
    "WHERE datediff(year,pubdate,getdate())="&年变量


    --查询表中1991年10月21日的记录

    select title_id,title
    from titles
    where datepart(yyyy,pubdate)=1991 and datepart(mm,pubdate)=10
    and datepart(dd,pubdate)
    =21
    ----或者----
    select title_id,title
    from titles
    where datediff(Dy,pubdate,'1991-10-21')=0


    --ASP端的查询语句应写成

    strSQL="select title_id,title from titles "& _
    "where datepart(yyyy,pubdate)="&年变量&" and datepart(mm,pubdate)="&月变量&" and "& _
    "datepart(dd,pubdate)="&日变量
    '或者
    strSQL="select title_id,title from titles "& _
    "where datediff(Dy,pubdate,' " & 日期变量 &" ' )=0"


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

    2、查询某段时间内的表记录


    --查询1991年6月1日至21日的表记录

    select title_id,title,pubdate
    from titles
    where datepart(day,pubdate)<=datepart(day,getdate()) and datepart(day,pubdate)>=1 and
    datepart(yyyy,pubdate)
    =1991
    and datepart(month,pubdate)
    =6



    --ASP端的查询语句应写为

    strSQL="select title_id,title,pubdate from titles "& _
    "where datepart(day,pubdate)<=datepart(day,getdate()) and datepart(day,pubdate)>=1 and "& _
    "datepart(yyyy,pubdate)=1991 and datepart(month,pubdate)=6"
  • 相关阅读:
    LeetCode 258 Add Digits
    LeetCode 231 Power of Two
    LeetCode 28 Implement strStr()
    LeetCode 26 Remove Duplicates from Sorted Array
    LeetCode 21 Merge Two Sorted Lists
    LeetCode 20 Valid Parentheses
    图形处理函数库 ImageTTFBBox
    php一些函数
    func_get_arg(),func_get_args()和func_num_args()的用法
    人生不是故事,人生是世故,摸爬滚打才不会辜负功名尘土
  • 原文地址:https://www.cnblogs.com/pricks/p/1640886.html
Copyright © 2011-2022 走看看