FANLE

vuePress-theme-reco FANLE    2019 - 2021
FANLE FANLE

Choose mode

  • dark
  • auto
  • light
主页
分类
  • 瞎扯
  • 后端
  • 数据库
  • 考试
  • 前端
  • 心情
标签
时间线
GitHub
author-avatar

FANLE

49

Article

24

Tag

主页
分类
  • 瞎扯
  • 后端
  • 数据库
  • 考试
  • 前端
  • 心情
标签
时间线
GitHub
  • 数据库时间查询问题

数据库时间查询问题

vuePress-theme-reco FANLE    2019 - 2021

数据库时间查询问题


FANLE 2020-05-25 数据库 SpringBoot

使用框架的时候查询数据时间是一个很大的问题,同时还有比较时间等问题, 那今天简单说下

sqlserver:

  -- 这是在 mybatis xml 中遇到的时间比较问题,重点是在 <![CDATA[<=]]>  这个来比较大小
  -- GETDATE() 获取数据库当前时间
  -- DATEDIFF(MINUTE,p.LastUpLoadTime,GETDATE()) 获取以分钟的时间差
  (p.RunState = 0 and DATEDIFF(MINUTE,p.LastUpLoadTime,GETDATE()) <![CDATA[<=]]> #{OffSpan})
   or (p.RunState != 0 and DATEDIFF(MINUTE,p.LastUpLoadTime,GETDATE()) <![CDATA[<=]]> #{AutoOutSpan}+#{OutServiceSpan})

1
2
3
4
5
6

mysql:


--0
select datediff(now(), now());

--2
select datediff('2020-05-22 23:59:00', '2020-05-20 00:00:00');

--2
select datediff('2020-05-22 00:00:00', '2020-05-20 23:59:00');

--1
select TIMESTAMPDIFF(DAY, '2020-05-20 23:59:00', '2020-05-22 00:00:00');

--2
select TIMESTAMPDIFF(DAY, '2020-05-20 00:00:00', '2020-05-22 00:00:00');

--2
select TIMESTAMPDIFF(DAY, '2020-05-20 00:00:00', '2020-05-22 12:00:00');

--2
select TIMESTAMPDIFF(DAY, '2020-05-20 00:00:00', '2020-05-22 23:59:00');

--71
select TIMESTAMPDIFF(HOUR, '2020-05-20 00:00:00', '2020-05-22 23:00:00');

--4260
select TIMESTAMPDIFF(MINUTE, '2020-05-20 00:00:00', '2020-05-22 23:00:00');


日期转换计算函数(date_add、day、date_format、str_to_date)

-- 用日期与字符串转换,计算当月第一天、下月第一天
select curdate() as '当前日期', 
DATE_FORMAT(curdate(), '%Y-%m') as '当前月份', 
str_to_date(concat(DATE_FORMAT(curdate(), '%Y-%m'), '-01'), '%Y-%m-%d') as '当前月的第一天', 
date_add(str_to_date(concat(DATE_FORMAT(curdate(), '%Y-%m'), '-01'), '%Y-%m-%d'), interval 1 month) as '下月的第一天';

-- 当前月的最后一天
select last_day(curdate());

-- 下月第一天
select date_add(last_day(curdate()), interval 1 day);

-- 当天为当月的第几天
select day(curdate());

-- 当月第一天
select date_add(curdate(), interval 1-(day(curdate())) day);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49