我有一个包含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
我将不胜感激任何帮助。 谢谢。
答案 0 :(得分:1)
在MySQL中,您可以使用:
select str_to_date(concat_ws('-', CREATE_YEAR, CREATE_MONTH, CREATE_DAY),
'%Y-%m-%d'
) as CreateDate