MySql 中的时间

26 篇文章 2 订阅
4 篇文章 0 订阅

一.常用的时间格式化

有时候从数据库取出的 Date 时间格式,会变成时间戳形式,这时候需要进行转换,比较常用的是

1. 在 java 中格式化

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date;
date = sdf.parse((String) param.get("date"));

或者使用 String.format()方法 :

String date = String.format("%1$tF %1$tT", new Date());

显然这种方式需要一个个进行转换,效率低下

2.利用 FROM_UNIXTIME() 和 UNIX_TIMESTAMP() 函数

FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y-%m-%d %H:%i:%s') date,

将这段语句放在Date字段前,但这种方法有个弊端,就是如果数据库中的时间单位为null的话,会自动给查询生成一个当前时间

3.利用 DATE_FORMAT() 函数

DATE_FORMAT(date,'%Y-%m-%d %H:%i:%s') as a,

再给这个字段值赋个别名,可以很顺利取出想要的时间格式

二.Mysql中常见的时间类型

1.Date

Date类型只会存储 年月日,不会存储时间部分,存储时需要三个字节。

可以使用 current_date 查看当前日期:

select current_date;

2.Datetime

Datetime 类型使用8个字节来表示日期和时间。

时间范围从 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59',且和时区无关,怎么存就怎么取。


3.timestamp

timestamp类型使用4个字节来表示日期和时间。

时间为UTC时间,范围从 '1970-01-01 00:00:01'  到 '2038-01-19 03:14:07',且和时区有关,例如在东八区插入'2020-06-15 12:30:30',在东七区显示时,时间部门就变成了'2020-06-15 11:30:30'.
 

注:时间类型尽量选取 timestamp 。因为 datetime 占用8字节, timestamp 仅占用4字节,但是范围
为 1970-01-01 00:00:01 到 2038-01-01 00:00:00 。更为高阶的方法,选用 int 来存储时间,使用SQL函 数
unix_timestamp() from_unixtime() 来进行转换。

三.Mysql 中查看当前时间

select current_date;

SELECT CURRENT_TIMESTAMP;

SELECT CURRENT_TIMESTAMP();

SELECT NOW();

SELECT LOCALTIME;

SELECT LOCALTIME();

SELECT LOCALTIMESTAMP;

SELECT LOCALTIMESTAMP();

四.Mysql对时间进行增加或减少

可以利用 INTERVAL 

加一天:

select NOW() + INTERVAL 1 DAY;

减一天:

select NOW() - INTERVAL 1 DAY;

加 30 分钟:

select NOW() + INTERVAL 30 MINUTE;

减 30 分钟:

select NOW() - INTERVAL 30 MINUTE;

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: MySQL使用`BETWEEN`进行时间段查询。语法如下: ``` SELECT 列名 FROM 表名 WHERE 时间字段 BETWEEN '开始时间' AND '结束时间'; ``` 例如,查询2021年1月1日至2021年12月31日的订单: ``` SELECT * FROM orders WHERE order_date BETWEEN '2021-01-01' AND '2021-12-31'; ``` 请注意,在MySQL时间字段通常是`DATETIME`或`TIMESTAMP`类型。 ### 回答2: 在MySQL时间段between查询是一种非常常用的查询方式。它可以用来查询某一时间段内的数据记录。这种查询方法可以适用于多种情形下的查询需求,比如说查询某个时间段内的订单数量、某个时间段内的销售额等等。 在MySQL时间段between查询是通过指定时间段的起始时间和结束时间来实现的。下面是一个示例查询语句: SELECT * FROM orders WHERE order_time BETWEEN '2021-01-01 00:00:00' AND '2021-01-31 23:59:59'; 在上面的查询语句,我们查询了2021年1月份内的所有订单数据记录。其,"order_time"是订单时间字段,它的值是一个时间戳格式。 需要注意的是,在使用时间段between查询时,起始时间和结束时间一定要精准而准确,不然查询结果会出现误差。此外,在涉及跨年和跨月份的查询时,也需要特别小心,避免漏查数据。 此外,时间段between查询还可以用在联合查询,例如: SELECT * FROM orders WHERE order_time BETWEEN '2021-01-01 00:00:00' AND '2021-01-31 23:59:59' AND customer_id IN (SELECT customer_id FROM customers WHERE customer_name LIKE '%张%'); 上面的查询语句,我们查询了2021年1月份内姓"张"的所有客户的订单数据记录。其,"customer_id"是客户ID字段,"customer_name"是客户姓名字段。 总之,时间段between查询在MySQL的应用非常广泛,但它也需要我们仔细考虑各种细节,保证查询结果的精确性。同时,我们也可以通过组合查询条件来实现更多复杂的查询需求。 ### 回答3: MySQL时间段between查询是指在查询数据时,根据时间范围限制获取满足条件的数据。在MySQL,我们可以使用"BETWEEN... AND..."关键字来实现这一功能。语法格式为: SELECT * FROM table_name WHERE datetime_field BETWEEN 'start_time' AND 'end_time'; 其,在上述语句,"table_name"表示表名,"datetime_field"表示要查询的日期时间字段,'start_time'和'end_time'代表时间段的起始时间和结束时间。在使用BETWEEN的过程需要注意以下几点: 1. 时间格式的设置。MySQL支持多种时间格式,如年月日格式(YYYY-MM-DD)、年月日时分秒格式(YYYY-MM-DD HH:MM:SS)等。在使用BETWEEN时需要保证时间格式的统一。 2. BETWEEN关键字的使用。BETWEEN关键字用于限制数据范围,包括起始时间和结束时间。注意,经常会有用户误解BETWEEN的含义,误认为查询结果包含起始时间和结束时间。实际上,BETWEEN查询结果只包含在起始时间和结束时间之间的数据。 3. 时间段的设置。在使用BETWEEN查询时需要保证时间段的正确性。一些常见的错误包括:起始时间晚于结束时间时间范围设置重叠、时间格式不正确等。 4. 索引的使用。如果要查询的字段启用了索引,可以极大提高查询速度。 综上所述,MySQL时间段between查询是常用的数据查询方式之一,需要注意时间格式、BETWEEN关键字使用、时间范围设置、索引使用等方面的问题。只有在保证这些方面正确的前提下,才能更快更准确地查询到所需的数据。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

纯洁的小魔鬼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值