当前位置: 首页 > news >正文

SQL和MySQL以及DAX的日期表生成?数字型日期?将生成的日期表插入到临时表或者实体表中

几种生成日期表的方法
如何用SQL语句生成日期表呢?
如何用MySQL语句生成日期表呢?
如何用DAX语句生成日期表呢?

1. MySQL生成日期表

1.1 日期格式:yyyy-MM-dd 字符型 2024-01-02

-- 生成日期表
WITH RECURSIVE temp_dateTable AS (SELECT '2023-01-01' AS datekeyUNION ALLSELECT DATE_ADD(datekey, INTERVAL 1 DAY)FROM temp_dateTableWHERE datekey < '2023-12-31'
)
SELECT datekey FROM temp_dateTable
;
/*
datekey
2023-01-01
2023-01-02
2023-01-03
2023-01-04
*/

1.2 日期格式:yyyyMMdd 数字型 20240102

-- 生成日期表
WITH RECURSIVE temp_dateTable AS (SELECT 20240101 AS datekeyUNION ALLSELECT date_format(date_add(CONVERT(datekey, CHAR),interval 1 day), "%Y%m%d")+0FROM temp_dateTableWHERE datekey < 20240117
)
selectdt.datekey
from temp_dateTable dt
;
/*
datekey
20240101
20240102
20240103
20240104
*/

1.3 MySQL生成的日期表插入到实体表(临时表)

-- 删除表
DROP TABLE IF EXISTS create_dateTable;-- 创建表
CREATE TABLE create_dateTable (datekey DATE PRIMARY KEY
);-- 将查找出来的临时表插入到新创建的实体表
INSERT INTO create_dateTable
WITH RECURSIVE temp_dateTable AS (SELECT '2023-01-01' AS datekeyUNION ALLSELECT DATE_ADD(datekey, INTERVAL 1 DAY)FROM temp_dateTableWHERE datekey < '2023-12-31'
)
SELECT datekey FROM temp_dateTable;
-- 查找日期
SELECT * FROM create_dateTable;

2. SQL生成日期表

2.1 日期格式:yyyy-MM-dd 字符型 2024-01-02

DECLARE @BeginDate DATE, @EndDate DATE;
SET @BeginDate = '2023-09-01'
SET @EndDate = '2023-12-01'
;
WITH cteDate AS (SELECT @BeginDate AS CalendarDateUNION ALLSELECT DATEADD(DAY,1,CalendarDate)FROM cteDateWHERE CalendarDate <= @EndDate
)
SELECTCalendarDate DateKey,(DATEPART(YEAR,CalendarDate) * 10000) + (DATEPART(MONTH,CalendarDate) * 100) +DATEPART(DAY,CalendarDate) CalendarDate,DATEPART(YEAR,CalendarDate) AS Year,DATEPART(MONTH,CalendarDate) AS MonthNumber,DATENAME(MONTH,CalendarDate) AS Month,DATENAME(QUARTER,CalendarDate) AS Quarter, format(CalendarDate ,'yyyyMM') YeamMonth
FROM cteDate
OPTION (MAXRECURSION 0)

2.2 日期格式:yyyyMMdd 数字型 20240102

DECLARE @BeginDate INT, @EndDate INT;
SET @BeginDate = 20240101; 
SET @EndDate = 20240117;   
WITH cteDate AS (SELECT @BeginDate AS CalendarDateUNION ALLSELECT format(dateadd(day, 1, cast(CalendarDate as varchar(8))), 'yyyyMMdd')+0FROM cteDateWHERE CalendarDate < @EndDate
)
selectCalendarDate
from cteDate
/*
CalendarDate
20240101
20240102
20240103
20240104
*/

2.3 SQL生成的日期表插入到实体表(临时表)

DECLARE @BeginDate DATE, @EndDate DATE;
SET @BeginDate = '2023-09-01'
SET @EndDate = '2023-12-01'
;
WITH cteDate AS (SELECT @BeginDate AS CalendarDateUNION ALLSELECT DATEADD(DAY,1,CalendarDate)FROM cteDateWHERE CalendarDate <= @EndDate
)
SELECTCalendarDate DateKey,(DATEPART(YEAR,CalendarDate) * 10000) + (DATEPART(MONTH,CalendarDate) * 100) +DATEPART(DAY,CalendarDate) CalendarDate,DATEPART(YEAR,CalendarDate) AS Year,DATEPART(MONTH,CalendarDate) AS MonthNumber,DATENAME(MONTH,CalendarDate) AS Month,DATENAME(QUARTER,CalendarDate) AS Quarter, format(CalendarDate ,'yyyyMM') YeamMonthINTO #temp_dateTable
FROM cteDate
OPTION (MAXRECURSION 0);
SELECT * FROM #temp_dateTable

3. DAX日期表生成 自动日期表

EVALUATE
ADDCOLUMNS (CALENDARAUTO(),"Year", YEAR ( [Date] ),"Quarter No", QUARTER ( [Date] ),"Quarter", "Q" & QUARTER ( [Date] ),"Month No", MONTH ( [Date] ),"Month", FORMAT ( [Date], "MM" ),"Day", DAY ( [Date] )
)

3.2 DAX日期表生成 指定日期表

EVALUATE
ADDCOLUMNS (CALENDAR ( DATE ( 2023, 11, 01 ), DATE ( 2023, 12, 31 ) ),"Year", YEAR ( [Date] ),"Quarter No", QUARTER ( [Date] ),"Quarter", "Q" & QUARTER ( [Date] ),"Month No", MONTH ( [Date] ),"Month", FORMAT ( [Date], "MM" ),"Day", DAY ( [Date] )
)

日期表生成

http://www.lryc.cn/news/523861.html

相关文章:

  • 文件下载时利用redis的队列模式顺序下载文件,防止多文件任务下载导致OOM
  • 第13章:Python TDD完善货币加法运算(二)
  • 两份PDF文档,如何比对差异,快速定位不同之处?
  • ESP-Skainet语音唤醒技术,设备高效语音识别方案,个性化交互应用
  • 地图:nuxt3高德地图简单使用 / nuxt2 + amap
  • 走进DevOps:让开发与运维齐头并进
  • 力扣动态规划-5【算法学习day.99】
  • LLM(3) : 浏览器录制16K的音频并上传到后端
  • PyTorch使用教程(13)-一文搞定模型的可视化和训练过程监控
  • 服务器日志自动上传到阿里云OSS备份
  • 树莓派学习
  • NestJS中实现注入多个实现了同一个接口的Service
  • Qt按钮美化教程
  • 基于单片机的多功能蓝牙语音智能台灯(论文+源码)
  • 第15章:Python TDD应对货币类开发变化(二)
  • 算法随笔_13: 有效三角形的个数
  • WSL 2 自动更新 虚拟 IP 到 window hosts
  • 我在广州学Mysql 系列——触发器的使用
  • 【useCallback Hook】在多次渲染中缓存组件中的函数,避免重复创建函数
  • 2025/1/20 学习Vue的第三天
  • Kotlin Bytedeco OpenCV 图像图像49 仿射变换 图像裁剪
  • 金融项目实战 07|Python实现接口自动化——连接数据库和数据清洗、测试报告、持续集成
  • (快速入门)保姆级详细的 Midjourney 基础教程
  • leetcode——找到字符串中所有字母异位词(java)
  • 大文件上传服务-后端V1V2
  • Single-Model and Any-Modality for Video Object Tracking——2024——cvpr-阅读笔记
  • 阳振坤:AI 大模型的基础是数据,AI越发达,数据库价值越大
  • Linux磁盘空间不足,12个详细的排查方法
  • Spring Web MVC综合案例
  • 微软预测 AI 2025,AI Agents 重塑工作形式