我在年份数据类型字段中有一个包含年份数据的表,现在我想插入包含日期数据的新数据,并且我希望将年份从旧数据转换为默认月份和日期1.1.YearFromOldData。 我正在寻找像STR_TO_DATE这样的函数,但是对于数据类型年NOT VARCHAR NOT VARCHAR,我找不到它。我该怎么做?
我想这样做
SELECT YEAR_TO_DATE(myYearField,'%1 /%1 /%Y') 来自myTable
答案 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)