如何在mysql中将年份转换为日期?

时间:2015-08-28 12:09:15

标签: mysql

我在年份数据类型字段中有一个包含年份数据的表,现在我想插入包含日期数据的新数据,并且我希望将年份从旧数据转换为默认月份和日期1.1.YearFromOldData。 我正在寻找像STR_TO_DATE这样的函数,但是对于数据类型年NOT VARCHAR NOT VARCHAR,我找不到它。我该怎么做?

我想这样做

SELECT YEAR_TO_DATE(myYearField,'%1 /%1 /%Y') 来自myTable

4 个答案:

答案 0 :(得分:2)

假设您有一个名为varchar的{​​{1}}字段与旧年,请使用以下查询获取默认日期和月份的日期

year_dt

这将以默认格式返回日期,即SELECT DATE(CONCAT(table.year_dt, '-01-01')) as 'date' FROM table

答案 1 :(得分:0)

您可以使用

获取插入数据库的时间戳
timestamp = (year - 1970) / 31557600

答案 2 :(得分:0)

STR_TO_DATE()正是您所需要的。如果您有四位数年份,请在字符串,整数或YEAR列中尝试此操作。它适用于所有人。

select str_to_date(CONCAT(year_column,'-01-01'), '%Y-%m-%d')

如果你有两位数的年份,试试这个(小写%y)

select str_to_date(CONCAT(year_column,'-01-01'), '%y-%m-%d')

这很酷,因为你可以做各种日期算术:例如

select str_to_date(CONCAT(year_column,'-01-01'), '%Y-%m-%d')
       + INTERVAL 1 QUARTER
       - INTERVAL 1 DAY

将为您提供一年中第一季度的最后一天。

答案 3 :(得分:0)

如果您想要一年中的第一天,我认为最简单的方法是makedate()

select makedate(year, 1)