将 MySQL 中的整列从 YYYY-MM-DD 更改为月数
假设您在MySQL中有一个Yyyy-MM-DD中的整列,并且您想选择它作为到特定日期的月数,也将其作为新列进行。示例日期计数可以是2020年3月。
因此( table_1 ):
emp_name | hire_date |
---|---|
steve steve | 2018-03-28 |
to
emp_name | monter_employs_employs_employed |
---|---|
steve | 24, |
但在hire_date列中的每个日期都执行此操作。在日期或时间戳记的开始日期和结束日期。
我有以下内容,它返回了一个新列,但是以空值为单位:
select
Emp_Name, timestampdiff(month, 2021-04-01, Hire_Date) as Months_Employed
from
table_1
我还尝试了约会夫,并除以12,但行不通。
任何帮助都将受到赞赏。
编辑为有效的答案:
SELECT
emp_name,
TIMESTAMPDIFF(month, hire_date, '2022-03-07')
AS months_employed
FROM table_1
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
是使用的正确功能。
日期常数需要显示为文本字符串。
'2021-04-01'
是愚人节2021。代码>。这是 fiddle 。
TIMESTAMPDIFF(MONTH, startDate, endDate) is the correct function to use.
Date constants need to be shown as text strings.
'2021-04-01'
is April Fools Day 2021. But2021-04-01
, without the quotes, is an arithmetic expression evaluating to2016
.Here's a fiddle.
有一个 mysql 函数可以让你通过传递年份和月份来实现这一点。
PERIOD_DIFF(P1,P2) - 返回期间 P1 和 P2 之间的月数。 P1 和 P2 的格式应为 YYMM 或 YYYYMM。请注意,句点参数 P1 和 P2 不是日期值。
There is a mysql funtion that lets you achieve this by passing in the year and month.
PERIOD_DIFF(P1,P2) - Returns the number of months between periods P1 and P2. P1 and P2 should be in the format YYMM or YYYYMM. Note that the period arguments P1 and P2 are not date values.
您可以使用此查询中的功能添加生成的列:
输出:
在您的情况下,类似:
Alter表和生成的列
You could add a generated column using the functionality like in this query:
output:
In your case something like:
More info: ALTER TABLE and Generated Columns