SELECT
DATE_FORMAT(
DATE_ADD(
CONCAT('2021-10-01'),INTERVAL(CAST(help_topic_id AS SIGNED))DAY),'%Y-%m-%d')DATEFROM
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-logSELECT
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')MONTHFROM
mysql.help_topic
WHERE help_topic_id <12ORDERBYDATEASC
运行结果
###10.5.10-MariaDB-logSELECT
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')MONTHFROM
mysql.help_topic
WHERE help_topic_id <=12ORDERBYDATEASC
运行结果
三 一天24H
SELECT
DATE_FORMAT(
DATE_ADD(NOW(),INTERVAL(CAST(help_topic_id AS SIGNED))HOUR),'%H')DATEFROM
mysql.help_topic
WHERE help_topic_id <24ORDERBYDATEASC
运行结果
四 一天24H 获取寄时/偶时
SELECT
date_table.dateAS dateHour
FROM(SELECT
DATE_FORMAT(
DATE_ADD(NOW(),INTERVAL(CAST( help_topic_id AS SIGNED ))HOUR),'%H')DATEFROM mysql.help_topic
WHERE help_topic_id <=24ORDERBYDATEASC) date_table
WHEREMOD(CONVERT(date_table.DATE,SIGNED),2)=1
运行结果
SELECT
date_table.dateAS dateHour
FROM(SELECT
DATE_FORMAT(
DATE_ADD(NOW(),INTERVAL(CAST( help_topic_id AS SIGNED ))HOUR),'%H')DATEFROM mysql.help_topic
WHERE help_topic_id <=24ORDERBYDATEASC) date_table
WHEREMOD(CONVERT(date_table.DATE,SIGNED),2)=0