分类: SQL Server

 select GETDATE() as '当前日期',
DateName(year,GetDate()) as '年',
DateName(month,GetDate()) as '月',
DateName(day,GetDate()) as '日',
DateName(dw,GetDate()) as '星期',
DateName(week,GetDate()) as '周数',
DateName(hour,GetDate()) as '时',
DateName(minute,GetDate()) as '分',
DateName(second,GetDate()) as '秒'

结果:

2009-08-13 23:07:15.403 2009 08 13 星期四 33 23 7 15

2007-11-13
sql server2000 时间操作
1.显示本月第一天
SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0) 
select convert(datetime,convert(varchar(8),getdate(),120)+'01',120)

2.显示本月最后一天
select dateadd(day,-1,convert(datetime,convert(varchar(8),dateadd(month,1,getdate()),120)+'01',120))
SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+1,0))

3.上个月的最后一天 
SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(mm,0,getdate()),0))

4.本月的第一个星期一
select DATEADD(wk,DATEDIFF(wk,0, dateadd(dd,6-datepart(day,getdate()),getdate())),0)

5.本年的第一天 
SELECT DATEADD(yy,DATEDIFF(yy,0,getdate()),0)

6.本年的最后一天 
SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate())+1,0))

7.去年的最后一天 
SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate()),0))

8.本季度的第一天 
SELECT DATEADD(qq,DATEDIFF(qq,0,getdate()),0)

9.本周的星期一 
SELECT DATEADD(wk,DATEDIFF(wk,0,getdate()),0)

10.查询本月的记录 
select * from tableName where DATEPART(mm, theDate) = DATEPART(mm, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())

11.查询本周的记录 
select * from tableName where DATEPART(wk, theDate) = DATEPART(wk, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())

12.查询本季的记录 
select * from tableName where DATEPART(qq, theDate) = DATEPART(qq, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE()) 
其中:GETDATE()是获得系统时间的函数。

13.获取当月总天数:
select DATEDIFF(dd,getdate(),DATEADD(mm, 1, getdate()))

select datediff(day,
dateadd(mm, datediff(mm,'',getdate()), ''),
dateadd(mm, datediff(mm,'',getdate()), '1900-02-01'))

14.获取当前为星期几
DATENAME(weekday, getdate())

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

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

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

18. datepart 返回代表指定日期的指定日期部分的整数。
SELECT DATEPART(month, '2004-10-15') --返回 10
年为year,月为month,日为day,小时hour,分为minute,秒为second

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

17. 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) 说明
Year Yy 年 1753 ~ 9999
Quarter Qq 季 1 ~ 4
Month Mm 月1 ~ 12
Day of year Dy 一年的日数,一年中的第几日 1-366
Day Dd 日,1-31
Weekday Dw 一周的日数,一周中的第几日 1-7
Week Wk 周,一年中的第几周 0 ~ 51
Hour Hh 时0 ~ 23
Minute Mi 分钟0 ~ 59
Second Ss 秒 0 ~ 59
Millisecond Ms 毫秒 0 ~ 999

举例:
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年

应用示例:

查询某个日期之间的记录数据:
select * from 表 where 开始时间>'2005-02-01' and 结束时间<='2005-06-05'order by id desc

查询最近30内的记录数据:
select * from 表 where datediff(Dd,last_date,getdate())<=30 order by id desc

查询最近一周内的点击率大于100的记录数据:
select * from t_business_product where hit_count>100 and datediff(Dw,last_date,getdate())<=7 order by id desc

查询某一年(如2006年)的记录数据:
select * from 表 where DatePart(Yy,last_date)=2006 order by id desc

select * from 表 where DatePart(Year,last_date)=2006 order by id desc

如查询系统当前年份插入的一年内的数据:
select * from 表 where DatePart(Yy,getdate())=DatePart(Yy,getdate()) order by id desc

取系统日期 并将 日期 分开 
select 当前日期=convert(varchar(10),dateadd(day,-1,getdate()),120),当前时间=convert(varchar(8),getdate(),114)
---------------------取 年月日
year(),month(),date()

SQL Server中如何获取当前年,月,日,时,分,秒的更多相关文章

  1. ASP.NET C# 日期 时间 年 月 日 时 分 秒 格式及转换(转自happymagic的专栏)

    在平时编码中,经常要把日期转换成各种各样的形式输出或保持,今天专门做了个测试,发现DateTime的ToString()方法居然有这么多的表现形式,和大家一起分享. DateTime time=Dat ...

  2. ASP.NET 日期 时间 年 月 日 时 分 秒 格式及转换

    在平时编码中,经常要把日期转换成各种各样的形式输出或保持,今天专门做了个测试,发现DateTime的ToString()方法居然有这么多的表现形式,和大家一起分享. DateTime time=Dat ...

  3. oracle截取时间的年/月/日/时/分/秒

    修改日期格式为年月日时分秒: alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';select to_char(sysdate,'yyy ...

  4. ASP.NET C# 获取当前日期 时间 年 月 日 时 分 秒

    我们可以通过使用DataTime这个类来获取当前的时间.通过调用类中的各种方法我们可以获取不同的时间:如:日期(2008-09-04).时间(12:12:12).日期+时间(2008-09-04 12 ...

  5. Java 获取年 月 日 时 分 秒

    /** * 英文简写(默认)如:2010-12-01 */ public static String FORMAT_SHORT = "yyyy-MM-dd"; /** * 英文全称 ...

  6. C#WinForm中显示实时时间:年/月/日 时/分/秒 星期X

    //加载窗体时 string weekstr = ""; private void Form22_Load(object sender, EventArgs e) { this.t ...

  7. [Windows]获取当前时间(年/月/日/时/分/秒)

    struct tm* GetCurTime(time_t inTime) { struct tm* curTime = localtime(&inTime); curTime->tm_y ...

  8. mysql 获取系统时间的下一天 年-月-日 时:分:秒

    DAY) as date

  9. Js 日期字符串分别截取 年 月 日 时 分 秒

    function shijiantime(times){ var timearr = times.replace(" ", ":").replace(/\:/g ...

随机推荐

  1. pinyin4j使用示例

    pinyin4j的主页:http://pinyin4j.sourceforge.net/pinyin4j能够根据中文字符获取其对应的拼音,而且拼音的格式可以定制pinyin4j是一个支持将中文转换到拼 ...

  2. C#中结构体的声明

    定义:       结构是用户自定义的值类型 代码样式:struct Pair{    public int X, Y; //公有变量名单词的首字母大写(PascalCase规则)}struct Pa ...

  3. UVa 10883 (组合数 对数) Supermean

    在纸上演算一下就能看出答案是:sum{ C(n-1, i) * a[i] / 2^(n-1) | 0 ≤ i ≤ n-1 } 组合数可以通过递推计算:C(n, k) = C(n, k-1) * (n- ...

  4. UVa 10820 (打表、欧拉函数) Send a Table

    题意: 题目背景略去,将这道题很容易转化为,给出n求,n以内的有序数对(x, y)互素的对数. 分析: 问题还可以继续转化. 根据对称性,我们可以假设x<y,当x=y时,满足条件的只有(1, 1 ...

  5. redis服务启动关闭脚本

    代码如下: # chkconfig: 90 10 # description: service of redis for start and stop add by tomener PATH=/usr ...

  6. WebView线性进度条

    参考:http://www.cnblogs.com/hubli/p/4835549.html APP会跳转网页时候,请参考:http://blog.csdn.net/raphael55/article ...

  7. gradle command not found

    find / -name 'gradle*' .... /Applications/Android Studio.app/Contents/gradle/gradle-2.10/bin/gradle ...

  8. Oracle 不同故障的恢复方案

    之前在Blog中对RMAN 的备份和恢复做了说明,刚看了下,在恢复这块还有知识点遗漏了. 而且恢复这块很重要,如果DB 真要出了什么问题,就要掌握对应的恢复方法. 所以把DB的恢复这块单独拿出来说明一 ...

  9. MyBatis学习 之 三、动态SQL语句

    目录(?)[-] 三动态SQL语句 selectKey 标签 if标签 if where 的条件判断 if set 的更新语句 if trim代替whereset标签 trim代替set choose ...

  10. C# 如何以参数的形式调用.exe程序

    System.Diagnostics.Process.Start("程序的路径", "参数1 参数2");第一个参数是aaa.exe 的路径,第二个参数是用空格 ...