Mysql-通过help_topic生成日期

一 获取某个时间段所有日期

SELECT 
  DATE_FORMAT(
    DATE_ADD(
      CONCAT('2021-10-01'),
      INTERVAL (CAST(help_topic_id AS SIGNED)) DAY
    ),
    '%Y-%m-%d'
  ) DATE 
FROM
  mysql.help_topic 
WHERE help_topic_id < TIMESTAMPDIFF(
    DAY,
    CONCAT(
      STR_TO_DATE('2021-10-01', '%Y-%m-%d')
    ),
    CONCAT(
      STR_TO_DATE('2021-12-01', '%Y-%m-%d')
    )
  )

运行结果

在这里插入图片描述

二 获取某年每个月(2021-01至2021-12)以及月号(1至12)

这里数据库版本不同,sql需要不同版本的修改

###5.7.28-log
SELECT 
  DATE_FORMAT(
    DATE_ADD(
      CONCAT(YEAR(NOW()), '-01-01'),
      INTERVAL (CAST(help_topic_id AS SIGNED)) MONTH
    ),
    '%Y-%m'
  ) DATE,
  DATE_FORMAT(
    DATE_ADD(
      CONCAT(YEAR(NOW()), '-01-01'),
      INTERVAL (CAST(help_topic_id AS SIGNED)) MONTH
    ),
    '%c'
  ) MONTH 
FROM
  mysql.help_topic 
WHERE help_topic_id < 12 
ORDER BY DATE ASC

运行结果

在这里插入图片描述

###10.5.10-MariaDB-log
SELECT 
  DATE_FORMAT(
    DATE_ADD(
      CONCAT(YEAR(NOW()), '-01-01'),
      INTERVAL (CAST(help_topic_id AS SIGNED) -1) MONTH
    ),
    '%Y-%m'
  ) DATE,
  DATE_FORMAT(
    DATE_ADD(
      CONCAT(YEAR(NOW()), '-01-01'),
      INTERVAL (CAST(help_topic_id AS SIGNED) -1) MONTH
    ),
    '%c'
  ) MONTH 
FROM
  mysql.help_topic 
WHERE help_topic_id <= 12 
ORDER BY DATE ASC

运行结果

在这里插入图片描述

三 一天24H

SELECT 
  DATE_FORMAT(
    DATE_ADD(
      NOW(),
      INTERVAL (CAST(help_topic_id AS SIGNED)) HOUR
    ),
    '%H'
  ) DATE 
FROM
  mysql.help_topic 
WHERE help_topic_id < 24 
ORDER BY DATE ASC 

运行结果

在这里插入图片描述

四 一天24H 获取寄时/偶时

SELECT
date_table.date AS dateHour
FROM(
SELECT
DATE_FORMAT(
DATE_ADD(
NOW(),
INTERVAL (CAST( help_topic_id AS SIGNED )) HOUR ),'%H'
) DATE
FROM mysql.help_topic
WHERE help_topic_id <= 24
ORDER BY DATE ASC
) date_table
WHERE MOD(CONVERT(date_table.DATE,SIGNED), 2)=1

运行结果

在这里插入图片描述

SELECT
date_table.date AS dateHour
FROM(
SELECT
DATE_FORMAT(
DATE_ADD(
NOW(),
INTERVAL (CAST( help_topic_id AS SIGNED )) HOUR ),'%H'
) DATE
FROM mysql.help_topic
WHERE help_topic_id <= 24
ORDER BY DATE ASC
) date_table
WHERE MOD(CONVERT(date_table.DATE,SIGNED), 2)=0

运行结果

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值