MySQL学习笔记:生成时间维度表

本文介绍如何使用MySQL的日期时间函数来快速生成时间维度表,包括按小时、分钟和秒生成的时间戳,并提供了完整的SQL脚本示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# ---- 对应时间戳怎么生成的? ----

/*
TIME_CD TIME_CD1
000000 000005
000001 000005
000002 000005
000003 000005
000004 000005
000005 000010
*/

  利用MySQL常用日期函数生成时间维度表

  • 日期时间函数
  • 按小时、按分钟、按秒生成
SELECT STR_TO_DATE('September 02, 2016','%M %d, %Y') AS DATE; # 2016-09-02

SELECT CURRENT_DATE(), CURRENT_TIME(), CURRENT_TIMESTAMP;
# 2018-05-29    01:00:54     2018-05-29 01:00:54

  MySQL快速生成时间维度表

SET @d0 = '2018-01-01';
SET @d1 = '2018-12-31';
SET @date = DATE_SUB(@d0, INTERVAL 1 DAY);

USE test;

CREATE TABLE aa_time_dim(
 DATE DATE DEFAULT NULL,
 id INT(11) NOT NULL,
 Y SMALLINT(6) DEFAULT NULL,
 m SMALLINT(6) DEFAULT NULL,
 d SMALLINT(6) DEFAULT NULL,
 yw SMALLINT(6) DEFAULT NULL,
 w SMALLINT(6) DEFAULT NULL,
 q SMALLINT(6) DEFAULT NULL,
 wd SMALLINT(6) DEFAULT NULL,
 m_name CHAR(10) DEFAULT NULL,
 wd_name CHAR(10) DEFAULT NULL,
 PRIMARY KEY (id))ENGINE = INNODB DEFAULT CHARSET = utf8;

SELECT * FROM aa_time_dim;

INSERT INTO aa_time_dim
SELECT 
    @date := DATE_ADD(@date, INTERVAL 1 DAY) AS DATE,
    DATE_FORMAT(@date, '%Y%m%d') AS id,
    YEAR(@date) AS Y,
    MONTH(@date) AS m,
    DAY(@date) AS d,
    DATE_FORMAT(@date, '%x') AS yw,
    WEEK(@date,3) AS w,
    QUARTER(@date) AS q,
    WEEKDAY(@date) + 1 AS wd,
    MONTHNAME(@date) AS m_name,
    DAYNAME(@date) AS wd_name
FROM xxx
WHERE DATE_ADD(@date,INTERVAL 1 DAY) <= @d1
ORDER BY DATE;

SELECT * FROM aa_time_dim;

DROP TABLE aa_time_dim;

  注意:此处的表xxx,仅仅需要有多于需要生成日期的记录数即可。思路是从xxx表选择多行数据,同时生成对应的日期字段。  

  结果:


END 2018-05-29 01:15:25 

转载于:https://www.cnblogs.com/hider/p/9103137.html

智能交通综合教学管理系统(题目一) 第一部分,交通教学资料管理 1、专业名称(专业ID、专业名称、专业描述) 2、课程资源(资源ID、资源名称、资源类型、上传时间、文件路径、所属课程ID、上传 教师ID) 3、知识点(知识点ID、知识点名称、知识点内容、教学重难点、学时、所属课程ID) 4、项目(项目ID、项目名称、项目介绍、实施步骤、学时) 第二部分,考勤打分、答疑 1、试题库(试题ID,试题题目,试题类型,试题答案,分值,知识点ID) 2、答题(用户ID,试题ID,用户答案,得,得分) 3、论坛(主题ID,主题,内容,发布时间,用户ID,知识点ID) 4、学习记录(学生ID、课程ID、学习时长、学习日期、完成的课程资源ID、完成的知识 点ID) 第三部分:用户资料管理 1、学生(学生ID、学生姓名、学生性别、年纪、专业、所在班级,入学年份) 2、教师(教师ID、教师姓名、教师性别、年纪、专业) 3、用户管理(用户ID、密码) 备注:用户ID和学生ID、教师ID一致 4、用户权限(用户ID、模块名称) 主要实现如下功能: 1、 教学管理员可以对专业名称、课程名称进行增删改查。 2、 教师可以对交通教学资料、试题库进行增删改查。 3、 学生可以查看教学资料(如pdf在线阅览)、答题、学习知识点。 4、 生成学习进度统计图,用图形式展示学生学习热度、完成度。 5、 错题本自动生成,自动记录学生答错题目,方便复习。
06-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值