我目前正在尝试从多个日期列中删除时间戳。实际上,select语句中的大多数列都包含日期。我想从查询结果中的所有日期值中删除时间戳。可以在MySQL中完成吗?
选择Date(column1,column2,column3 ...)FROM ...似乎无效。 选择DATE(column1),DATE(column2),DATE(column3)....似乎也不起作用
SELECT
col1,
col2,
col3, //this is a date field
col4 //this is a date field
FROM table1
UNION
SELECT
col1,
col2, //this is a date field
col3, //this is a date field
col4 //this is a date field
FROM table2
所有日期值均不应包含时间戳记
答案 0 :(得分:2)
一种简单的方法是只使用DATE()
函数,以及一个别名,以用作您希望调用每个强制转换列的名称:
SELECT
col1,
col2,
DATE(col3) AS col3,
DATE(col4) AS col4
FROM table1
UNION
SELECT
col1,
DATE(col2) AS col2,
DATE(col3) AS col3,
DATE(col4) AS col4
FROM table2;
答案 1 :(得分:1)
规范使用date()
:
SELECT col1, col2,
DATE(col3) as col3, //this is a date field
DATE(col4) as col4 //this is a date field
FROM table1
UNION ALL
SELECT col1, col2,
DATE(col3) as col3, //this is a date field
DATE(col4) as col4 //this is a date field
FROM table2;
您也可以使用CAST(col3 as DATE)
。
或者,如果问题是即使查看结果仍然可以看到时间分量,则可以转换为字符串:
DATE_FORMAT(col3, '%Y-%m-%d')