sql时间加减

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql时间加减相关的知识,希望对你有一定的参考价值。

create table users
(
use_id int primary not null,
user_time datetime not null
)
select * from userswhere where user_time = getdate()
and SUBSTRING(convert(char(19),getdate(),120),12, 19)
between (SUBSTRING(convert(char(19),getdate(),120),12, 19)-15--就是这个取出的系统时间减15分钟--)
and SUBSTRING(convert(char(19),getdate(),120),12, 19)
怎么样才能做到小时分钟加减,减分钟不够时就从小时中提取!!

参考技术A 减5分钟
select getdate(),dateadd(minute,-5,getdate())
日期部分
Year
quarter
Month
dayofyear
Day
Week
Hour
minute
second
millisecond本回答被提问者和网友采纳
参考技术B 语法
DateDiff(interval,
date1,
date2
[,
firstdayofweek]
[,
firstweekofyear]
)
DateDiff(“m”,
Now(),
生产日期)
interval
参数
(参数:为操作、事件、方法、属性、函数或过程提供信息的值。)包含以下设置:
设置
说明
yyyy

q
季度
m

y
某年的某一天
d

w
工作日
ww

h

n

s
参考技术C 用的是什么数据库?
oracle
可以
直接
用+
select
sysdate+1
from
dual
查找当前时间
+1天的时间
select
sysdate+1/24
from
dual
当前时间+1小时
select
sysdate+1/24/60
from
dual
当前时间+1分钟
select
sysdate+5/24/60
from
dual
当前时间+5分钟
另外查一下DATEADD函数
参考技术D select
*
from
table
where
卡号='123'
and
datediff(mi,convert(datetime,日期
+'
'
+
时间),'2010/06/20
08:05:00')
between
-5
and
5
后面的就是日期和时间和在一起的时间
虽然这样可以实现,但是建议把2个字段和在一起用datetime类型
第5个回答  2010-06-23 select
*
from
table
where
卡号='123'
and
日期='2010-06-20'
and
DATEPART
(
hh
,
时间)=8
--小时
and
DATEPART(mi,时间)
between
0
and
10
--分钟

sql date时间加减几天几小时

//时间转成年月日时分秒
select date_format(now(),‘%Y%m%d%H%i%S‘)
//时间转成年月日
select date_format(now(),‘%Y%m%d‘)
//去年此时
select DATE_ADD(now(), Interval -1 year)
//上月此时
select DATE_ADD(now(), Interval -1 month)
//昨天此时
select DATE_ADD(now(), Interval -1 day)

//7天后
select DATE_ADD(now(), Interval 7 day)

//一小时前
select DATE_ADD(now(), Interval -1 hour)
//一分钟前
select DATE_ADD(now(), Interval -1 minute)
//一秒钟前
select DATE_ADD(now(), Interval -1 second)
//昨天(年月日)
select date_format(DATE_ADD(now(), Interval 1 day),‘%Y%m%d‘)

//上个月第一天和最后一天
select date_sub(date_sub(date_format(now(),‘%Y%m%d‘),interval extract( day from now())-1 day),interval 1 month);
select date_sub(date_sub(date_format(now(),‘%Y%m%d‘),interval extract(day from now()) day),interval 0 month);
  
//某个字符串
select date_format(DATE_ADD(‘20090605123020‘, Interval 20 minute),‘%Y%m%d‘)
//第几周
select weekofyear( now() )
select weekofyear(‘20090606‘)

在mysql中,会把‘20090707123050‘和‘20090707‘格式的字符串作为date类型转换。

在mysql中,没有类似oracle的to_char(num,format)函数,所以涉及到数字前面补0的情况需要特殊处理。

如select left(concat(‘00‘),@num),3)就会显示三位数字的字符串, @num=1时显示001,为123是显示123。

CONCAT(YEAR(a.createtime),LEFT(CONCAT(‘0‘,WEEKOFYEAR(a.createtime)),2))

以上是关于sql时间加减的主要内容,如果未能解决你的问题,请参考以下文章

sql里日期怎么加减

Oracle SQL 求算时间加减问题

SQL请教大家一个日期的加减法

sql时间加减

sql 年月 加减

sql查询中日期加减的问题