Sqlite 从表查询中选择年龄和最早日期

Sqlite 从表查询中选择年龄和最早日期,sqlite,Sqlite,您好,我有这个表,我想从每个客户那里找到最早的日期和年龄(另一个表)。 我试过这个: 从Functionario中选择nome、remuneracao、max(dataNasc) 它实际上打印了最小日期,但我认为它是用日期而不是年份来排序的。 在这个年龄,我一直在挣扎,但我真的不明白这一点 有什么想法吗 事先非常感谢 有点问候请尝试下面的查询 CREATE TABLE funcionario ( idFuncionario varchar2(5) not null, n

您好,我有这个表,我想从每个客户那里找到最早的日期和年龄(另一个表)。 我试过这个: 从Functionario中选择nome、remuneracao、max(dataNasc)

它实际上打印了最小日期,但我认为它是用日期而不是年份来排序的。 在这个年龄,我一直在挣扎,但我真的不明白这一点

有什么想法吗

事先非常感谢


有点问候

请尝试下面的查询

 CREATE TABLE funcionario
  ( 
   idFuncionario    varchar2(5) not null,
   nome varchar2(50)    not null,
   remuneracao  varchar2(10)    not null,
   id   varchar2(5) not null,
   datanasc date    not null,
   morada   varchar(50) not null,
   tipoFuncionario varchar(20),
   idDepartamento   varchar2(5) REFERENCES departamento(idDepartamento),

   CONSTRAINT funcionario_pk PRIMARY KEY (idFuncionario)
 );

这一点不太清楚-

// To find the oldest age by number of days
SELECT nome, remuneracao, MAX(DATEDIFF(NOW(), remuneracao)) AS max_age_in_days  FROM funcionario;

// To find the oldest age by number of years
SELECT nome, remuneracao, MAX(DATEDIFF(NOW(), remuneracao)/365)) AS max_age_in_years  FROM funcionario;
显示他们的姓名、工资和最新(而非最早)出生日期

首先尝试使用最小值而不是最大值。比如说

SELECT nome, remuneracao, max(dataNasc) from funcionario
最早日期-->MIN日期

SELECT nome, remuneracao, min(dataNasc), datediff(year,min(dataNasc), getdate()) from funcionario

好吧,我知道了如何找到最早/最早的日期和年龄。感谢所有试图帮忙的人。对于那些可能有相同问题的人,快速解释/解决方案

在像DATEDIFF和NOW()这样的SQLite函数中不存在,要计算和操作日期信息,应该使用date()(其效果与现在相同)。要使用出生日期(上面的my dataNasc字段)获得年龄,只需进行减法即可。 另外,为了工作并获得正确的最小或最大日期,您必须以YY-MM-DD格式写入日期

希望这有帮助


亲切问候

您是否也可以添加另一个表结构和获取最小日期的查询。
varchar2
否定的,甚至没有阅读
sql server
标记:Microsoft sql server是一个关系数据库管理系统。将此标记用于所有SQL Server版本,包括Compact、Express、Azure、Fast track和PDW。不要将此标签用于其他类型的DBMS(MySQL、PostgreSQL等)。它表示没有此类功能:现在您可以告诉我您使用的是MySQL、MS SQL还是SQL Lite数据库吗?另外,请尝试使用CURDATE()代替前面提到的NOW函数。我正在使用数据库浏览器
SELECT
    nome, id, min(datanasc), ((julianday('now') - julianday(datanasc))/365) as Age
FROM
    funcionario