sqlite select with condition on date

前端 未结 3 1022
一生所求
一生所求 2020-11-29 06:03

I have an sqlite table with Date of Birth. I would like to execute a query to select those records where the age is more than 30. I have tried the following but it doesn\'t

相关标签:
3条回答
  • 2020-11-29 06:06

    Using the magic docs at the sqlite website:

    select * from mytable where dob < date('now','-30 years');
    
    0 讨论(0)
  • 2020-11-29 06:23

    Some thing like this could be used:

    select dateofbirth from customer Where DateofBirth  BETWEEN date('1004-01-01') AND date('1980-12-31');  
    select dateofbirth from customer where date(dateofbirth)>date('1980-12-01');
    select * from customer where date(dateofbirth) < date('now','-30 years');
    

    If you are using Sqlite V3.7.12 or greater

    Dont use date(dateofbirth) just use dateofbirth. So your query would look like this:

    select * from customer where dateofbirth < date('now','-30 years');
    
    0 讨论(0)
  • 2020-11-29 06:27

    Try writing using the date format 'YYYY-MM-DD'

    select * from mytable where dob > '1980-01-01'
    

    A more programic way would be something like this:

    select * from mytable where datediff(dob, now()) > 30
    

    You'll Need to find specific syntax for sqlite.

    0 讨论(0)
提交回复
热议问题