SQL 获取当前日期,年、月、日、周、时、分、秒

作者: www.9159.com  发布:2019-11-05
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 '秒'

SQL时间段查询
ACCESS的话
select * from table where date1<#2008-1-20# and date2>#2007-8-30#

结果:

MYSQL的话
select * from table where date1<'2008-1-20' and date2>'2007-3-30'
也可以
select * from table where date1 between '2008-1-20' and '2007-3-30'

2016-03-23 11:04:14.450  2016 03 23 星期三 13 11 4 14       

其中date1,date2都是日期类型的字段

 

sQL时间型查询语句
2007年12月04日 星期二 13:54
select * from jy_jjgl a ,jy_jygl b where convert(varchar(10),a.shtime,120)='2007-11-27'

1.显示本月第一天
SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0) 
select convert(datetime,convert(varchar(8),getdate(),120)+'01',120)

1.显示本月第一天

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)) 

SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0)
select convert(datetime,convert(varchar(8),getdate(),
120)+'01',120)

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

2.显示本月最后一天

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

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))

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

3.上个月的最后一天

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

SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(mm,0,getdate()),0))

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

4.本月的第一个星期一i

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

select DATEADD(wk,DATEDIFF(wk,0, dateadd(dd,6-datepart(
day,getdate()),getdate())),0)

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

5.本年的第一天

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

SELECT DATEADD(yy,DATEDIFF(yy,0,getdate()),0)

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

6.本年的最后一天

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

SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate())+1,0))

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

7.去年的最后一天

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

SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate()),0))

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

8.本季度的第一天

  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
    年为year,月为month,日为day,小时hour,分为minute,秒为second

  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')

SELECT DATEADD(qq,DATEDIFF(qq,0,getdate()),0)

函数 参数/功能
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指定部分所对应的字符串名称

9.本周的星期一

参数 interval的设定值如下:
值 缩 写(Sql Server) 说明
Year Yy 年 1753 www.9159.com ,~ 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

SELECT DATEADD(wk,DATEDIFF(wk,0,getdate()),0)

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

10.查询本月的记录

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 天

select * from tableName where DATEPART(mm, theDate)
=DATEPART(mm, GETDATE()) and DATEPART(yy, theDate)
= DATEPART(yy, GETDATE())

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年

11.查询本周的记录

应用示例:

select * from tableName where DATEPART(wk, theDate) = DATEPART
(wk, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())

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

12查询本季的记录 注:其中:GETDATE()是获得系统时间的函数。

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

select * from tableName where DATEPART(qq, theDate) = DATEPART
(qq, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())

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

13.获取当月总天数:

查询某一年(如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 DATEDIFF(dd,getdate(),DATEADD
(mm, 1, getdate()))

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

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

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

14.获取当前为星期几

取 年月日
year(),month(),date()

DATENAME(weekday, getdate())

本文来自CSDN博客,转载请标明出处:

本文由9159.com发布于www.9159.com,转载请注明出处:SQL 获取当前日期,年、月、日、周、时、分、秒

关键词:

上一篇:没有了
下一篇:本周记录,time 为今天内