mysql - 三列合并为一个日期

标签 mysql sql

我有一个包含 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/

相关文章:

mysql - 在 MySQL 中动态选择一部分随机行

mysql服务器外壳

c# - Sql 数据库中的字符串是问号 C#

mysql标签表索引

mysql - 将文本文件中的数据导入到sql表中

mysql - 如何在 Hive 中进行配对?

sql - 哪个查询的性能更好?

mysql - 从许多行中选择值或基于列的另一个值

不支持 SQL Server 版本 10 错误

sql - CFScript 中的动态 SQL