java获取年月日、时间与区间、Sql获取年月日区间
SQL 获取时、日、周、月日期
因工作上常用到统计分析,需要用到具体的时间,故写于此
24小时:
SELECT 0 AS hour UNION ALL SELECT 1 AS hour UNION ALL
SELECT 2 AS hour UNION ALL SELECT 3 AS hour UNION ALL
SELECT 4 AS hour UNION ALL SELECT 5 AS hour UNION ALL
SELECT 6 AS hour UNION ALL SELECT 7 AS hour UNION ALL
SELECT 8 AS hour UNION ALL SELECT 9 AS hour UNION ALL
SELECT 10 AS hour UNION ALL SELECT 11 AS hour UNION ALL
SELECT 12 AS hour UNION ALL SELECT 13 AS hour UNION ALL
SELECT 14 AS hour UNION ALL SELECT 15 AS hour UNION ALL
SELECT 16 AS hour UNION ALL SELECT 17 AS hour UNION ALL
SELECT 18 AS hour UNION ALL SELECT 19 AS hour UNION ALL
SELECT 20 AS hour UNION ALL SELECT 21 AS hour UNION ALL
SELECT 22 AS hour UNION ALL SELECT 23 AS hour
当天、前一天,前一周日期:
//当天:
SELECT DATE_SUB(CURDATE(),INTERVAL 0 DAY);
//前一天:
SELECT DATE_SUB(CURDATE(),INTERVAL 1 DAY);
//前一周(从今天开始往前推七天)
select DATE_ADD(curdate(),INTERVAL -0 DAY) day union
select DATE_ADD(curdate(),INTERVAL -1 DAY) day1 union
select DATE_ADD(curdate(),INTERVAL -2 DAY) day2 union
select DATE_ADD(curdate(),INTERVAL -3 DAY) day3 union
select DATE_ADD(curdate(),INTERVAL -4 DAY) day4 union
select DATE_ADD(curdate(),INTERVAL -5 DAY) day5 union
select DATE_ADD(curdate(),INTERVAL -6 DAY) day6 ;
//后七天(从今天开始往后推七天)
select DATE_SUB(curdate(),INTERVAL -1 DAY) day1 union
select DATE_SUB(curdate(),INTERVAL -2 DAY) day2 union
select DATE_SUB(curdate(),INTERVAL -3 DAY) day3 union
select DATE_SUB(curdate(),INTERVAL -4 DAY) day4 union
select DATE_SUB(curdate(),INTERVAL -5 DAY) day5 union
select DATE_SUB(curdate(),INTERVAL -6 DAY) day6 union
select DATE_SUB(curdate(),INTERVAL -7 DAY) day7;
本周:
<!--本周第一天:(周一开始)-->
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 1 DAY);
<!--本周最后一天:(周日结束)-->
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) - 5 DAY);
<!--本周第一天:(周日开始)-->
select subdate(curdate(),date_format(curdate(),'%w'));
<!--本周最后一天:(周六结束)-->
select subdate(curdate(),date_format(curdate(),'%w') - 6);
近一、三个月日期:
<!--近一个月-->
SELECT ADDDATE(y.first, x.d - 1) as day
FROM
(SELECT 1 AS d UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL
SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL SELECT 11 UNION ALL SELECT 12 UNION ALL SELECT 13 UNION ALL SELECT 14 UNION ALL
SELECT 15 UNION ALL SELECT 16 UNION ALL SELECT 17 UNION ALL SELECT 18 UNION ALL SELECT 19 UNION ALL SELECT 20 UNION ALL SELECT 21 UNION ALL
SELECT 22 UNION ALL SELECT 23 UNION ALL SELECT 24 UNION ALL SELECT 25 UNION ALL SELECT 26 UNION ALL SELECT 27 UNION ALL SELECT 28 UNION ALL
SELECT 29 UNION ALL SELECT 30 UNION ALL SELECT 31) x,
(SELECT CONCAT('2022-09','-01') as FIRST, DAY(LAST_DAY(str_to_date('2022-09','%Y-%m-%d'))) AS last) y
WHERE x.d <= y.last
<!--近三个月(使用union all链接)-->
SELECT ADDDATE(y.first, x.d - 1) as day
FROM
(SELECT 1 AS d UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL
SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL SELECT 11 UNION ALL SELECT 12 UNION ALL SELECT 13 UNION ALL SELECT 14 UNION ALL
SELECT 15 UNION ALL SELECT 16 UNION ALL SELECT 17 UNION ALL SELECT 18 UNION ALL SELECT 19 UNION ALL SELECT 20 UNION ALL SELECT 21 UNION ALL
SELECT 22 UNION ALL SELECT 23 UNION ALL SELECT 24 UNION ALL SELECT 25 UNION ALL SELECT 26 UNION ALL SELECT 27 UNION ALL SELECT 28 UNION ALL
SELECT 29 UNION ALL SELECT 30 UNION ALL SELECT 31) x,
(SELECT CONCAT('2022-09','-01') as FIRST, DAY(LAST_DAY(str_to_date('2022-09','%Y-%m-%d'))) AS last) y
WHERE x.d <= y.last
union all
SELECT ADDDATE(y.first, x.d - 1) as day
FROM
(SELECT 1 AS d UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL
SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL SELECT 11 UNION ALL SELECT 12 UNION ALL SELECT 13 UNION ALL SELECT 14 UNION ALL
SELECT 15 UNION ALL SELECT 16 UNION ALL SELECT 17 UNION ALL SELECT 18 UNION ALL SELECT 19 UNION ALL SELECT 20 UNION ALL SELECT 21 UNION ALL
SELECT 22 UNION ALL SELECT 23 UNION ALL SELECT 24 UNION ALL SELECT 25 UNION ALL SELECT 26 UNION ALL SELECT 27 UNION ALL SELECT 28 UNION ALL
SELECT 29 UNION ALL SELECT 30 UNION ALL SELECT 31) x,
(SELECT CONCAT('2022-09','-01') as FIRST, DAY(LAST_DAY(str_to_date('2022-09','%Y-%m-%d'))) AS last) y
WHERE x.d <= y.last
union all
SELECT ADDDATE(y.first, x.d - 1) as day
FROM
(SELECT 1 AS d UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL
SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL SELECT 11 UNION ALL SELECT 12 UNION ALL SELECT 13 UNION ALL SELECT 14 UNION ALL
SELECT 15 UNION ALL SELECT 16 UNION ALL SELECT 17 UNION ALL SELECT 18 UNION ALL SELECT 19 UNION ALL SELECT 20 UNION ALL SELECT 21 UNION ALL
SELECT 22 UNION ALL SELECT 23 UNION ALL SELECT 24 UNION ALL SELECT 25 UNION ALL SELECT 26 UNION ALL SELECT 27 UNION ALL SELECT 28 UNION ALL
SELECT 29 UNION ALL SELECT 30 UNION ALL SELECT 31) x,
(SELECT CONCAT('2022-09','-01') as FIRST, DAY(LAST_DAY(str_to_date('2022-09','%Y-%m-%d'))) AS last) y
WHERE x.d <= y.last
Java获取当前的年月日时间
Calendar cal=Calendar.getInstance();
// 当前年
int year = cal.get(Calendar.YEAR);
// 当前月
int month = cal.get(Calendar.MONTH) + 1;
// 当前日
int day = cal.get(Calendar.DATE);
// 当前小时
int hour = cal.get(Calendar.HOUR_OF_DAY);
// 当前分钟
int minute = cal.get(Calendar.MINUTE);
// 当前秒
int second = cal.get(Calendar.SECOND);
// 当前是本周第几天
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
// 当前是本月第几天
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
// 当前是本年第几天
int dayOfYear = cal.get(Calendar.DAY_OF_YEAR);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
// 当月第一天
cal= Calendar.getInstance();
cal.add(Calendar.MONTH, 0);
cal.set(Calendar.DAY_OF_MONTH, 1);
String firstday = format.format(cal.getTime());
// 当月最后一天
cal= Calendar.getInstance();
cal.add(Calendar.MONTH, 1);
cal.set(Calendar.DAY_OF_MONTH, 0);
String lastday = format.format(cal.getTime());
获取某个区间内时间(从昨天开始往前推七天为例):
/**
* 根据当前日期获取前一天的日期
*/
public static String yesterday() {
//获取今天的日期
LocalDate localDate = LocalDate.now();
//前一天日期是今天减1
LocalDate yesterday = localDate.plusDays(-1);
return yesterday.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
}
/**
* 获取七天前的日期
*/
private static String getWeekAgo() {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_YEAR, -7);
Date date = calendar.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String sevenDaysAgo = sdf.format(date);
return sevenDaysAgo;
}
SELECT DATE_FORMAT( a.DAY, '%m-%d' ) AS DATE
from (
select curdate() - INTERVAL (a.a + (10 * b.a) + (100 * c.a) + (1000 * d.a) ) DAY as day
from (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as a
cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as b
cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as c
cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as d
) a
WHERE a.DAY BETWEEN "2023-08-10" AND "2023-08-15"
<!--将上面时间替换掉即可-->
<!--开发中发现上面这种存在日期显示问题,故更换下面这种-->
SELECT ADDDATE(#{startTime}, INTERVAL @i:=@i+1 DAY) AS DAY
FROM (
SELECT a.a FROM (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS a
CROSS JOIN (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS b
CROSS JOIN (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS c
) a
JOIN (SELECT @i := -1) r
WHERE @i < DATEDIFF(#{endTime},#{startTime})) d
java获取时间来自CSDN博主文章,文下附上链接:
https://blog.csdn.net/web18536564348/article/details/126403332
java获取年月日、时间与区间、Sql获取年月日区间的更多相关文章
- delphi 获取北京时间(使用XMLHTTP获取百度的时间,WebBrowser获取www.timedate.cn的时间)
方法一: uses ComObj, DateUtils; function GetInternetTime: string; var XmlHttp: OleVariant; datetxt: str ...
- (转)golang获取当前时间、时间戳和时间字符串及它们之间的相互转换
原文连接: https://blog.csdn.net/skh2015java/article/details/70051512 1.获取当前时间 currentTime:=time.Now() // ...
- Python获取当前时间_获取格式化时间_格式化日期
Python获取当前时间_获取格式化时间: Python获取当前时间: 使用 time.time( ) 获取到距离1970年1月1日的秒数(浮点数),然后传递给 localtime 获取当前时间 #使 ...
- JAVA中的时间操作
java中的时间操作不外乎这四种情况: 1.获取当前时间 2.获取某个时间的某种格式 3.设置时间 4.时间的运算 好,下面就针对这四种情况,一个一个搞定. 一.获取当前时间 有两种方式可以获得,第一 ...
- sql获取时间、年龄
mysql数据库获取年龄:TIMESTAMPDIFF(YEAR, [出生日期字段], CURDATE()) select * from (select name 姓名,TIMESTAMPDIFF( ...
- java获取当前日期时间代码总结
1.获取当前时间,和某个时间进行比较.此时主要拿long型的时间值. 方法如下: 要使用 java.util.Date .获取当前时间的代码如下 代码如下 复制代码 Date date = new ...
- 按照相应的格式获取系统时间并将其转化为SQL中匹配的(date)时间格式
在获取时间时需要对时间格式进行设置,此时就需要用到SimpleDateFormat 类 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM ...
- Java基础进阶:时间类要点摘要,时间Date类实现格式化与解析源码实现详解,LocalDateTime时间类格式化与解析源码实现详解,Period,Duration获取时间间隔与源码实现,程序异常解析与处理方式
要点摘要 课堂笔记 日期相关 JDK7 日期类-Date 概述 表示一个时间点对象,这个时间点是以1970年1月1日为参考点; 作用 可以通过该类的对象,表示一个时间,并面向对象操作时间; 构造方法 ...
- java学习第13天( java获取当前时间,有关大数据的运算及精确数字运算,Date类)
一 java获取当前时间 学习一个函数,得到当前时间的准确值 System.currectTimeMillis(). 可以得到以毫秒为单位的当前时间.它主要用于计算程序运行时间,long start= ...
- Swift3.0 iOS获取当前时间 - 年月日时分秒星期
Swift3.0 iOS获取当前时间 - 年月日时分秒星期func getTimes() -> [Int] { var timers: [Int] = [] // 返回的数组 let calen ...
随机推荐
- 用友U8+与百胜E3的数据对接:实现企业数字化业务的集成与协作
用友U8+作为中国企业最佳经营管理平台之一,在企业经营管理中广泛应用.然而,由于每个企业的内部管理方式和流程各不相同,标准软件功能难以完全适应所有企业的管理需求.同时,随着互联网和移动应用的发展,对于 ...
- Mysql中的FOREIGN_KEY_CHECKS方法【外键约束作用】
一.命令行 首先FOREIGN_KEY_CHECKS方法的作用是用来启动和关闭外键约束的方法. 二.外键约束 即数据库中两个数据表之间的某个列建立的一种联系.MySQL通过外键约束的引入,可以使得数据 ...
- Eclipse 安装 ABAP 插件报错 Microsoft Visual C++ 2013 (x64) 快速解决
去官网下载Microsoft Visual C++ 2013 (x64) 安装 Download Visual C++ Redistributable Packages for Visual St ...
- New Type Functions/Utilities for Dealing with Ranges in C++20
Generic Types of Ranges 类型萃取从字面意思上来说其实就是帮助我们挑选某个对象的类型,筛选特定的对象来做特定的事.可以先来回顾一下以前的写法. #include <ve ...
- keil 4 安装教程
一.下载 keil 官网 二.安装教程 1.开始安装 双击安装包,开始安装,直接下一步. 2.勾选同意,下一步 3.选择软件安装路径,下一步 4.填写信息 可以随意填写,下一步. 5.等待安装 6.安 ...
- ClickHouse(16)ClickHouse日志引擎Log详细解析
日志引擎系列 这些引擎是为了需要写入许多小数据量(少于一百万行)的表的场景而开发的. 这系列的引擎有: StripeLog Log TinyLog 共同属性 引擎: 数据存储在磁盘上. 写入时将数据追 ...
- 7-8次PTA和期末成绩总结
(1)前言:总结之前所涉及到的知识点.题量.难度等情况 课程成绩统计程序-3在第二次的基础上修改了计算总成绩的方式(修改类结构,将成绩类的继承关系改为组合关系,成绩信息由课程成绩类和分项成绩类组成,课 ...
- [AGC59C] Guessing Permutation for as Long as Possible
Problem Statement A teacher has a hidden permutation $P=(P_1,P_2,\ldots,P_N)$ of $(1,2,\cdots,N)$. Y ...
- AtomicArray
AtomicInteger ai = new AtomicInteger(1); //1.获取值 System.out.println("ai.get = "+ai.get()); ...
- Vite4+Typescript+Vue3+Pinia 从零搭建(7) - request封装
项目代码同步至码云 weiz-vue3-template 基于 axios 封装请求,支持多域名请求地址 安装 npm i axios 封装 utils 目录下新建 request 文件夹,并新建 i ...