smalldatetime 只能精确到分钟,但用字符串转为smalldatetime时的细节你有注意过吗?
29秒之前会是当前的分钟,30秒之后是后面的一分钟。
DECLARE @d VARCHAR(20)
SET @d='2024-02-29 23:59:00'
SELECT DATEADD(second, s.number, @d),CAST(DATEADD(second, s.number, @d) AS SMALLDATETIME)
FROM MASTER.dbo.spt_values AS s
WHERE s.type='p' AND s.number BETWEEN 1 AND 59
/*
2024-02-29 23:59:01.000 2024-02-29 23:59:00
2024-02-29 23:59:02.000 2024-02-29 23:59:00
2024-02-29 23:59:03.000 2024-02-29 23:59:00
2024-02-29 23:59:04.000 2024-02-29 23:59:00
2024-02-29 23:59:05.000 2024-02-29 23:59:00
2024-02-29 23:59:06.000 2024-02-29 23:59:00
2024-02-29 23:59:07.000 2024-02-29 23:59:00
2024-02-29 23:59:08.000 2024-02-29 23:59:00
2024-02-29 23:59:09.000 2024-02-29 23:59:00
2024-02-29 23:59:10.000 2024-02-29 23:59:00
2024-02-29 23:59:11.000 2024-02-29 23:59:00
2024-02-29 23:59:12.000 2024-02-29 23:59:00
2024-02-29 23:59:13.000 2024-02-29 23:59:00
2024-02-29 23:59:14.000 2024-02-29 23:59:00
2024-02-29 23:59:15.000 2024-02-29 23:59:00
2024-02-29 23:59:16.000 2024-02-29 23:59:00
2024-02-29 23:59:17.000 2024-02-29 23:59:00
2024-02-29 23:59:18.000 2024-02-29 23:59:00
2024-02-29 23:59:19.000 2024-02-29 23:59:00
2024-02-29 23:59:20.000 2024-02-29 23:59:00
2024-02-29 23:59:21.000 2024-02-29 23:59:00
2024-02-29 23:59:22.000 2024-02-29 23:59:00
2024-02-29 23:59:23.000 2024-02-29 23:59:00
2024-02-29 23:59:24.000 2024-02-29 23:59:00
2024-02-29 23:59:25.000 2024-02-29 23:59:00
2024-02-29 23:59:26.000 2024-02-29 23:59:00
2024-02-29 23:59:27.000 2024-02-29 23:59:00
2024-02-29 23:59:28.000 2024-02-29 23:59:00
2024-02-29 23:59:29.000 2024-02-29 23:59:00
2024-02-29 23:59:30.000 2024-03-01 00:00:00
2024-02-29 23:59:31.000 2024-03-01 00:00:00
2024-02-29 23:59:32.000 2024-03-01 00:00:00
2024-02-29 23:59:33.000 2024-03-01 00:00:00
2024-02-29 23:59:34.000 2024-03-01 00:00:00
2024-02-29 23:59:35.000 2024-03-01 00:00:00
2024-02-29 23:59:36.000 2024-03-01 00:00:00
2024-02-29 23:59:37.000 2024-03-01 00:00:00
2024-02-29 23:59:38.000 2024-03-01 00:00:00
2024-02-29 23:59:39.000 2024-03-01 00:00:00
2024-02-29 23:59:40.000 2024-03-01 00:00:00
2024-02-29 23:59:41.000 2024-03-01 00:00:00
2024-02-29 23:59:42.000 2024-03-01 00:00:00
2024-02-29 23:59:43.000 2024-03-01 00:00:00
2024-02-29 23:59:44.000 2024-03-01 00:00:00
2024-02-29 23:59:45.000 2024-03-01 00:00:00
2024-02-29 23:59:46.000 2024-03-01 00:00:00
2024-02-29 23:59:47.000 2024-03-01 00:00:00
2024-02-29 23:59:48.000 2024-03-01 00:00:00
2024-02-29 23:59:49.000 2024-03-01 00:00:00
2024-02-29 23:59:50.000 2024-03-01 00:00:00
2024-02-29 23:59:51.000 2024-03-01 00:00:00
2024-02-29 23:59:52.000 2024-03-01 00:00:00
2024-02-29 23:59:53.000 2024-03-01 00:00:00
2024-02-29 23:59:54.000 2024-03-01 00:00:00
2024-02-29 23:59:55.000 2024-03-01 00:00:00
2024-02-29 23:59:56.000 2024-03-01 00:00:00
2024-02-29 23:59:57.000 2024-03-01 00:00:00
2024-02-29 23:59:58.000 2024-03-01 00:00:00
2024-02-29 23:59:59.000 2024-03-01 00:00:00
(59 行受影响)
*/