【问题标题】:SQL. Convert age to date of birthSQL。将年龄转换为出生日期
【发布时间】:2020-09-08 13:05:37
【问题描述】:

当我没有发现任何关于将年龄转换为 DOB(出生日期)的内容时,我感到很惊讶。将 DOB 转换为年龄有很多答案,但反之则不然。

我有两位数(我可以将它们转换为任何数据类型,甚至转换为 DateTime.date(python 格式))。 我如何将它们转换为完整的 SQL 日期。它必须是 current_date - 年龄(日期和月份对我来说并不重要)。最好由数据库而不是 python 来执行此操作。

DDL:

cursor.execute("""CREATE TABLE IF NOT EXISTS users(
id int AUTO_INCREMENT PRIMARY KEY,
user_id INTEGER NOT NULL UNIQUE,
goal VARCHAR(255) DEFAULT NULL,
age INTEGER DEFAULT NULL,
gender VARCHAR(255) DEFAULT NULL,
country VARCHAR(255) DEFAULT NULL,
city VARCHAR(255) DEFAULT NULL,
comment VARCHAR(255) DEFAULT NULL)""")

附言相关问题Calculate Age in MySQL (InnoDb)

【问题讨论】:

  • 什么是脏东西?
  • 错字,出生日期

标签: python mysql sql


【解决方案1】:

在 MySQL 8.x 中,您可以使用 INTERVAL 算术。例如:

select current_date() - interval 42 year 

结果:

1978-05-21

在你的情况下,这可以转化为:

select current_date() - interval age year from users;

请参阅DB Fiddle 的运行示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-17
    • 1970-01-01
    • 2021-04-15
    • 2021-11-09
    • 1970-01-01
    • 2019-03-09
    相关资源
    最近更新 更多