SQL选择从某个年龄以下开始的计数
我想在一张桌子上数一数低于一定年龄的人。像这样的SQL选择从某个年龄以下开始的计数,sql,database,select,Sql,Database,Select,我想在一张桌子上数一数低于一定年龄的人。像这样的 select count(*) as total from 'TABLE' where 'BIRTHDAY'> 19 years old ; 字段类型为生日日期 我是sql新手,只是不知道如何正确编写 在MySQL中,您可以执行以下操作: select count(*) as total from TABLE where BIRTHDAY < CURDATE() - INTERVAL 19 YEAR; 从表中选择count(*)作
select count(*) as total from 'TABLE' where 'BIRTHDAY'> 19 years old ;
字段类型为生日日期
我是sql新手,只是不知道如何正确编写 在MySQL中,您可以执行以下操作:
select count(*) as total from TABLE where BIRTHDAY < CURDATE() - INTERVAL 19 YEAR;
从表中选择count(*)作为总计,其中生日
注意:您不希望在tablename或column name周围使用
,
,因为这会使它们成为字符串,并且您的语句会失败。对于SQL Server和MySQL,您可以使用DATEDIFF
函数
SELECT COUNT(*) FROM Table WHERE DATEDIFF(year,BIRTHDAY,today) > 19
(将今天位替换为用于获取今天日期的RDBMS的相关命令(例如:用于SQL Server的GETDATE())您使用的是哪种DBMS?Postgres?Oracle?喜欢用简单的英语进行查询!+1指出不要使用“OPI刚才使用的表/列名”作为重点。我得到了这个错误动态SQL错误。SQL错误代码=-104。未知标记-第1行,第78列。19。看到了吗?这就是您没有指定确切的我不知道SQL Server是什么,但在MySQL中,如果这样写的话,就不能使用索引,因为列在函数中。不过,IIRC可以在函数调用中创建索引。不过,重新排列更容易,因此列在一边,计算在另一边。但我不知道有哪种类型的SQL可以对包含非确定性值(如“today”)的函数进行索引。但是这个问题很容易解决,使用生日我现在很困惑的地方-这段代码从员工那里选择COUNT(*),其中DATEDIFF(year,DOB,GETDATE())>200在SQL Server 2008上运行并返回我预期的结果没有人说结果不对。只是索引不能这样使用。这是有效的!谢谢你的建议。对于firebird,我必须使用cast('Now'作为日期)替换DATEDIFF函数中的参数today。