我有一个包含 10 多列的数据库。其中三列代表日、月和年。我现在需要一个日期作为一种数据类型。
我已经尝试过互联网上解释的一些不同的解决方案,但它们不适用于 mysql。而且我找不到我犯的错误。
SELECT *,
CAST(
CAST(CREATE_YEAR AS VARCHAR(4)) +
RIGHT('0' + CAST(CREATE_MONTH AS VARCHAR(2)), 2) +
RIGHT('0' + CAST(CREATE_DAY AS VARCHAR(2)), 2)
AS DATETIME)
from incident_view
三列的名称为:CREATE_DAY、CREATE_MONTH 和 CREATE_YEAR。
我希望它如何计算的示例:列 DAY 中包含数字 27,月份为数字 5,年份为数字 2015。我希望显示如下:27.5.2015 。
SELECT *,
STR_TO_DATE(
CONCAT( CREATE_DAY, '/', CREATE_MONTH, '/', CREATE_YEAR ),
'%d/%m/%Y'
) as rcvd_date
FROM incident_view
where CUSTOMER_COMPANY_NAME = "Company" AND (create_month = MONTH(NOW() - INTERVAL 1 MONTH) AND (create_year = YEAR(NOW() - INTERVAL 1 MONTH)))
这个sql使我在数据库中拥有一个名为rcvd_data的逻辑列。但它显示了日-月-年-时-分-秒,但我只需要日-月和年。
数据字段示例:01/02/2016 00:00:00
如果有任何帮助,我将不胜感激。 谢谢。
最佳答案
在MySQL中,您可以使用:
select str_to_date(concat_ws('-', CREATE_YEAR, CREATE_MONTH, CREATE_DAY),
'%Y-%m-%d'
) as CreateDate
关于mysql - 三列合并为一个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35723895/