SQL中日期列处理:移除输出中的时间戳
移除DATE字段输出中的时间戳方法
针对不同数据库,有几种简单方法可以去掉查询结果里的00:00:00.000时间戳,只保留日期部分:
MySQL/MariaDB
可以用DATE()函数直接提取日期部分,或者用DATE_FORMAT()自定义日期格式:SELECT ID, DATE(BEGIN_DT) AS BEGIN_DT, DATE(END_DT) AS END_DT, PX_LAST FROM 你的表名; -- 或者指定格式输出 SELECT ID, DATE_FORMAT(BEGIN_DT, '%Y-%m-%d') AS BEGIN_DT, DATE_FORMAT(END_DT, '%Y-%m-%d') AS END_DT, PX_LAST FROM 你的表名;SQL Server
用CONVERT()函数转换为指定格式的字符串,或者直接把字段CAST为DATE类型:SELECT ID, CONVERT(VARCHAR, BEGIN_DT, 23) AS BEGIN_DT, CONVERT(VARCHAR, END_DT, 23) AS END_DT, PX_LAST FROM 你的表名; -- 直接转DATE类型,自动只显示日期 SELECT ID, CAST(BEGIN_DT AS DATE) AS BEGIN_DT, CAST(END_DT AS DATE) AS END_DT, PX_LAST FROM 你的表名;Oracle
用TRUNC()函数截断时间部分,或者TO_CHAR()格式化输出:SELECT ID, TRUNC(BEGIN_DT) AS BEGIN_DT, TRUNC(END_DT) AS END_DT, PX_LAST FROM 你的表名; -- 自定义日期格式 SELECT ID, TO_CHAR(BEGIN_DT, 'YYYY-MM-DD') AS BEGIN_DT, TO_CHAR(END_DT, 'YYYY-MM-DD') AS END_DT, PX_LAST FROM 你的表名;
注意:有些数据库客户端会默认给DATE类型字段加上时间戳显示,用上述方法可以强制输出纯日期格式。
内容的提问来源于stack exchange,提问作者Siddharth Somani
相关产品推荐
相关产品推荐

