@人人都有一个梦想,每天都在圆这个梦...... <-- 记录学习中点滴,一步步成长 ^o^ -->

MS SQL 中获取当前日期 可能用到的方法以及常用日期格式与例子(转)

 

 

1 select CONVERT(varchar(12) , getdate(), 101 ) --12/28/2007
2   select CONVERT(varchar(12) , getdate(), 102 ) --2007.12.28
3   select CONVERT(varchar(12) , getdate(), 103 ) --28/12/2007
4   select CONVERT(varchar(12) , getdate(), 104 ) --28.12.2007
5   select CONVERT(varchar(12) , getdate(), 105 ) --28-12-2007
6   select CONVERT(varchar(12) , getdate(), 106 ) --28 12 2007
7   select CONVERT(varchar(12) , getdate(), 107 ) --12 28, 2007
8   select CONVERT(varchar(12) , getdate(), 108 ) --10:06:33
9   select CONVERT(varchar(12) , getdate(), 109 ) --12 28 2007 1
10   select CONVERT(varchar(12) , getdate(), 110 ) --12-28-2007
11   select CONVERT(varchar(12) , getdate(), 111 ) --2007/12/28
12   select CONVERT(varchar(12) , getdate(), 112 ) --20071228
13 select CONVERT(varchar(12) , getdate(), 113 ) --28 12 2007 1
14 select CONVERT(varchar(12) , getdate(), 114 ) --10:07:36:623
15 select CONVERT(varchar, getdate(), 120 ) --2007-12-28 10:08:56
16 select CONVERT(varchar(10), getdate(), 120 ) --2007-12-28
17 select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')

 

 

 

getdate() 方法获取当前日期和时间

 

DateName:
返回代表指定日期的指定日期部分的字符串  (nvarchar)
语法:DATENAME ( datepart , date )
日期部分     缩写
year     yy, yyyy
quarter     qq, q
month     mm, m
dayofyear     dy, y
day     dd, d
week     wk, ww
weekday     dw
Hour     hh
minute     mi, n
second     ss, s
millisecond     ms

DatePart:
  返回一个包含已知日期的指定时间部分的 Variant (Integer)。
  语法
  DatePart(interval, date[,firstdayofweek[, firstweekofyear]])
  DatePart 函数语法中有下列命名参数:
  interval 必要。字符串表达式,是要返回的时间间隔。
  date 必要。要计算的 Variant (Date) 值。
  Firstdayofweek 可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。
  firstweekofyear 可选。指定一年第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。
  设置
  interval 参数的设定值如下:
  设置 描述
  yyyy 年
  q 季
  m 月
  y 一年的日数
  d 日
  w 一周的日数
  ww 周
  h 时
  n 分钟
  s 秒

DateDiff:
返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目。
  语法
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])

nterval 必要。字符串表达式,表示用来计算date1 和 date2 的时间差的时间间隔
  Date1□date2 必要;Variant (Date)。计算中要用到的两个日期。
  Firstdayofweek 可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。
  firstweekofyear 可选。指定一年的第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。

interval 参数的设定值如下:
  设置 描述
  yyyy 年
  q 季
  m 月
  y 一年的日数
  d 日
  w 一周的日数
  ww 周
  h 时
  n 分钟
  s 秒

DateAdd:
  返回包含一个日期的 Variant (Date),这一日期还加上了一段时间间隔。
  语法
  DateAdd(interval, number, date)
  DateAdd 函数语法中有下列命名参数:

  interval 必要。字符串表达式,是所要加上去的时间间隔。
  number 必要。数值表达式,是要加上的时间间隔的数目。其数值可以为正数(得到未来的日期),也可以为负数(得到过去的日期)。
  date 必要。Variant (Date) 或表示日期的文字,这一日期还加上了时间间隔。
  设置
  interval 参数具有以下设定值:
  设置 描述
  yyyy 年
  q 季
  m 月
  y 一年的日数
  d 日
  w 一周的日数
  ww 周
  h 时
  n 分钟
  s 秒

【转载的例子】:

 

代码
1 1 ---上个月月初第一天
2 2 select CONVERT(varchar(12) , DATEADD(mm,DATEDIFF(mm,0,dateadd(mm,-1,getdate())),0), 112 )
3 3
4 4 ---上个月月末最后一天
5 5 select CONVERT(varchar(12),dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate()),0)), 112 )
6 6
7 7 --1. 显示本月第一天
8 8
9 9 SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0)
10 10
11 11 select convert(datetime,convert(varchar(8),getdate(),120)+'01',120)
12 12
13 13 --2. 显示本月最后一天
14 14
15 15 select dateadd(day,-1,convert(datetime,convert(varchar(8),dateadd(month,1,getdate()),120)+'01',120))
16 16
17 17 SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+1,0))
18 18
19 19 --3. 上个月的最后一天
20 20
21 21 SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(mm,0,getdate()),0))
22 22
23 23 --4. 本月的第一个星期一
24 24 select DATEADD(wk,DATEDIFF(wk,0, dateadd(dd,6-datepart(day,getdate()),getdate())),0)
25 25
26 26 --5. 本年的第一天
27 27
28 28 SELECT DATEADD(yy,DATEDIFF(yy,0,getdate()),0)
29 29
30 30 --6. 本年的最后一天
31 31
32 32 SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate())+1,0))
33 33
34 34 --7. 去年的最后一天
35 35
36 36 SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate()),0))
37 37
38 38 --8. 本季度的第一天
39 39
40 40 SELECT DATEADD(qq,DATEDIFF(qq,0,getdate()),0)
41 41
42 42 --9. 本周的星期一
43 43
44 44 SELECT DATEADD(wk,DATEDIFF(wk,0,getdate()),0)
45 45
46 46 --10. 查询本月的记录
47 47
48 48 select * from tableName where DATEPART(mm, theDate)=DATEPART(mm, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())
49 49
50 50 --11. 查询本周的记录
51 51
52 52 select * from tableName where DATEPART(wk, theDate) = DATEPART(wk, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())
53 53
54 54 --12 查询本季的记录 注:其中:GETDATE() 是获得系统时间的函数。
55 55
56 56 select * from tableName where DATEPART(qq, theDate) = DATEPART(qq, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())
57 57
58 58 --13. 获取当月总天数:
59 59
60 60 select DATEDIFF(dd,getdate(),DATEADD(mm, 1, getdate()))
61 61
62 62 select datediff(day,dateadd(mm, datediff(mm,'',getdate()), ''),dateadd(mm, datediff(mm,'',getdate()), '1900-02-01'))
63 63
64 64 --14. 获取当前为星期几
65 65
66 66 SELECT DATENAME(weekday, getdate())
67 67
68 --20071228101012

 

 

 

posted @ 2010-12-09 09:59  有你的城市  阅读(732)  评论(0编辑  收藏  举报