我正在尝试根据当前年份和他的出生年份来计算用户的年龄,但是我的语法似乎有些错误,我无法发现它。
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))
);
<类型> [始终生成] AS(<表达式>) [虚拟|存储] [唯一[键]] [[主]键] [非空]
[评论]
如果您正在使用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))
);
编辑:
为了更好地计算年龄,请使用:
SELECT TIMESTAMPDIFF( YEAR, date_of_birth, CURDATE()) AS age;
您的代码2014-12-31
,2015-01-01
并将返回1年,但实际上它为0。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句