Mysql中时间类型查询处理记录

一、获取当前时间

SELECT NOW(); //2024-03-11 15:15:10

SELECT CURTIME(); //15:15:10

SELECT CURDATE(); //2024-03-11 15:09:09
  1. NOW() 返回当前的日期和时间
  2. CURTIME() 返回当前的时间
  3. CURDATE() 返回当前的日期

二、时间格式化DATE_FORMAT()

SELECT DATE_FORMAT(NOW() ,'%Y-%m-%d'); //2024-03-11

三、时间的增加和减少

SELECT DATE_ADD('2024/3/11', INTERVAL 1 day); //2024-03-12
SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH); //2024-02-11 15:24:21
  1. DATE_ADD()给日期添加指定的时间间隔
  2. DATE_SUB()从日期减去指定的时间间隔

格式:SELECT DATE_SUB(date,INTERVAL expr unit)

四、案例

需求说明:需要查询下次检查时间为今天或者明天的设备
 

SELECT next_check_time, device_name 
FROM devices
WHERE DATE_FORMAT(next_check_time ,'%Y-%m-%d') = CURDATE() 
OR DATE_FORMAT(next_check_time, '%Y-%m-%d') = DATE_ADD(CURDATE(),INTERVAL 1 DAY)

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果要设计一个 MySQL 数据库表来记录每天100万张卡的流量记录,可以考虑以下几个方面: 1. 表结构设计: - 创建一个名为 "daily_traffic" 的表,用于存储每天的流量记录。 - 表可以包含以下字段:id (自增主键),card_id (卡片ID),date (日期),traffic (流量)。 - 可以根据需要添加其他字段,例如网站ID、来源渠道等。 2. 数据类型选择: - id 字段可以选择 INT 或 BIGINT 类型,作为自增主键。 - card_id 字段可以选择 INT 或 BIGINT 类型,用于存储卡片ID。 - date 字段可以选择 DATE 类型,用于存储日期信息。 - traffic 字段可以选择 INT 或 BIGINT 类型,用于存储流量数据。 3. 索引设计: - 可以在 card_id 和 date 字段上创建联合索引,以支持按卡片和日期进行快速查询。 4. 数据库性能考虑: - 考虑将数据进行分表或分区,以减轻数据库的读写压力。 - 可以根据具体业务需求,对数据进行分库分表来提升数据库性能。 下面是一个示例的 SQL 建表语句: ```sql CREATE TABLE daily_traffic ( id INT AUTO_INCREMENT PRIMARY KEY, card_id INT, date DATE, traffic INT, INDEX idx_card_date (card_id, date) ); ``` 根据实际需求和业务场景,可以对表结构进行调整和优化。以上仅是一个基本的设计示例,具体的设计还需要根据实际情况进行调整。同时,还需要考虑数据库服务器的性能和可扩展性,以确保能够处理大量的流量记录

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值