gpt4 book ai didi

sql - 计算从当前日期和 DOB 得出的年龄

转载 作者:行者123 更新时间:2023-12-04 02:15:57 31 4
gpt4 key购买 nike

我试图根据当前年份和他的出生年份计算用户的年龄,但我的语法中的某些内容似乎不正确,我无法发现它。

CREATE TABLE Normal_Users(

first_name varchar(20),
last_name varchar(20),
date_of_birth date,
age int = year(CURRENT_TIMESTAMP) - year(date_of_birth)
)

为什么这是不正确的?

最佳答案

使用 AS :

CREATE TABLE Normal_Users(
first_name varchar(20),
last_name varchar(20),
date_of_birth date,
age int AS (year(CURRENT_TIMESTAMP) - year(date_of_birth))
);

Generated columns in MySQL

< type> [ GENERATED ALWAYS ] AS ( < expression> ) [ VIRTUAL|STORED ] [ UNIQUE [KEY] ] [ [PRIMARY] KEY ] [ NOT NULL ]
[ COMMENT ]



如果您正在使用 SQL Server 中不需要数据类型 computed columns :
CREATE TABLE Normal_Users(
first_name varchar(20),
last_name varchar(20),
date_of_birth date,
age AS (year(CURRENT_TIMESTAMP) - year(date_of_birth))
);

LiveDemo

编辑:

为了更好地计算年龄,请使用:
SELECT TIMESTAMPDIFF( YEAR, date_of_birth,  CURDATE()) AS age;

您的 2014-12-31 代码和 2015-01-01将返回 1 年,但实际上它有 0。

关于sql - 计算从当前日期和 DOB 得出的年龄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33617585/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com