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

 

 

 

转载于:https://www.cnblogs.com/wtao/archive/2010/12/09/1900919.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值