Sybase数据库:如何获取不带时间部分的当前日期?
获取SQL Server中GETDATE()的日期部分或午夜时间的DATETIME数据
针对你需要从GETDATE()返回的2025-05-07 15:49:07.780中提取日期部分,或者得到时间为午夜(00:00:00)的DATETIME类型数据,这里有几种实用的SQL Server方法:
方法1:通过CAST类型转换
先将DATETIME转换为DATE类型(仅保留日期),再转回DATETIME,自动补全午夜时间:SELECT CAST(CAST(GETDATE() AS DATE) AS DATETIME);执行后会返回
2025-05-07 00:00:00.000,是标准的DATETIME类型。方法2:使用DATEADD+DATEDIFF截断时间
这是SQL Server中截断时间的经典写法,性能表现稳定:SELECT DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0);原理是计算从1900-01-01到当前日期的天数,再将这个天数加回1900-01-01,得到的就是当前日期的午夜时间,结果同样是
2025-05-07 00:00:00.000。方法3:仅获取日期字符串(如果不需要DATETIME类型)
如果你只需要纯日期格式的字符串,可以用CONVERT指定格式代码23(对应yyyy-MM-dd):SELECT CONVERT(VARCHAR(10), GETDATE(), 23);执行后返回
2025-05-07,是字符串类型。
内容的提问来源于stack exchange,提问作者awvalenti
相关产品推荐
相关产品推荐

