从select语句中的多个日期列中删除时间戳(MySQL)

时间:2019-07-08 14:09:34

标签: php mysql sql drupal

我目前正在尝试从多个日期列中删除时间戳。实际上,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

所有日期值均不应包含时间戳记

2 个答案:

答案 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')