码迷,mamicode.com
首页 > 数据库 > 详细

SQL学习总结

时间:2016-10-22 17:59:53      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:second   --   int   case   time   举例   idt   else   sql   

一.时间类型的自动转换函数

CONVERT(varchar(12),getdate(),112 )  

原文地址http://penpy.blog.163.com/blog/static/132546191201151011458482/

一.SQL获取时间方法:

  1. getdate() 获取当前系统日期、时间
    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

返回代表指定日期的指定日期部分的字符串
本年第多少周=datename(week,getdate())
    今天是周几=datename(weekday,getdate())
 select datename(dw,‘2004-10-15‘)
    SELECT datename(weekday, ‘2004-10-15‘) --返回:星期五

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

函数

功能

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的值设定如下

参数值

含义

Year|yy|yyyy

 获取年份

Quarter|Qq|q

Quarter获取季节

Month|Mm|m

月份1 ~ 12 

Day of year|Dy |y

一年的日数,一年中的第几日 1-366 

Weekday|dw|w

一周的日数,一周中的第几日 1-7 

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 即星期一    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年 
  实例

  1.编写函数,实现按照‘年月日,星期几,上午下午晚上‘输出时间信息(2009年3月16日星期一下午)
   select datename(yy,getdate()) + ‘年‘ +
       datename(mm,getdate()) + ‘月‘ + 
       datename(dd,getdate()) + ‘日‘ +
       datename(weekday,getdate()) +
       case when datename(hh,getdate()) < 12 then ‘上午‘ else ‘下午‘ end                                                                                                              

  2..编写函数,根据输入时间。输出该天是该年的第几天
  select datepart(dy,getdate())
  3.求出随机输出字符‘a-z
  select char(97+abs(checksum(newid()))%26)
  select char(97+rand()*26)

二.日期格式化处理

sql server中table表的[datetime]字段值‘2007-11-07 16:41:35.033’ 

转化为指定的格式

convert(varchar(12),getdate(),参数值)

 

 

101

09/12/2004

102

2004.09.12

103

12/09/2004

104

12.09.2004

105

12-09-2004

106

12 09 2004

107

09 12, 2004

108

11:06:08

109

09 12 2004 1

110

09-12-2004

112 

20040912

113

12 09 2004 1

114

11:06:08.177

120

2007-11-07 00:00:00

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

 

SQL学习总结

标签:second   --   int   case   time   举例   idt   else   sql   

原文地址:http://www.cnblogs.com/ShiQiFang/p/5987740.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!