我想生成带时间的日期并插入到表中,但不太知道如何生成。我需要插入前三年每天的日期
2003年1月1日07:002003年1月1日08:002003年1月1日09:002023年1月2日07:002023年1月2日08:002023年1月2日09:0003.01.2023 07:00等
递归方法:
DECLARE
@StartDate DATE,
@EndDate DATE
SELECT
@StartDate = '2023-01-01',
@EndDate = DATEADD(YEAR, 3, @StartDate);
WITH DatesCTE(RecDate) AS (
SELECT @StartDate
UNION ALL
SELECT DATEADD(DAY, 1, RecDate) FROM DatesCTE WHERE RecDate < @EndDate
)
SELECT CAST(RecDate AS VARCHAR(10)) + ' 07:00' AS dt FROM DatesCTE
UNION ALL
SELECT CAST(RecDate AS VARCHAR(10)) + ' 08:00' AS dt FROM DatesCTE
UNION ALL
SELECT CAST(RecDate AS VARCHAR(10)) + ' 09:00' AS dt FROM DatesCTE
ORDER BY dt ASC
OPTION (MAXRECURSION 0)