select *from tablename
where date=50

解决方案 »

  1.   

    var
      sql,
      mydate:string
    begin
      mydate:=datetostr(date-50);
      sql:='select * from t_employee where birthday = '+mydate;  
      query1.close;
      query1.sql.clear;
      query1.sql.add(sql);
      query1.open;
    end;
      

  2.   

    where DATEDIFF(yy, 出生日期, GETDATE()) > 50///////from sqlhelp
    Returns the number of date and time boundaries crossed between two specified dates. 
    SyntaxDATEDIFF(datepart, startdate, enddate)ArgumentsdatepartIs the parameter that specifies on which part of the date to calculate the difference. The table lists dateparts and abbreviations recognized by Microsoft
    ?SQL Server?Datepart Abbreviations
    year yy, yyyy
    quarter qq, q
    month mm, m
    dayofyear dy, y
    day dd, d
    week wk, ww
    hour hh
    minute mi, n
    second ss, s
    millisecond ms
    startdateIs the beginning date for the calculation. startdate is an expression that returns a datetime or smalldatetime value, or a character string in a date format. 
    Because smalldatetime is accurate only to the minute, when a smalldatetime value is used, seconds and milliseconds are always 0.
    If you specify only the last two digits of the year, values that are less than or equal to the last two digits of the value of the two digit year cutoff configuration option are in the same century as the cutoff year. Values that are greater than the last two digits of the value of this option are in the century that precedes the cutoff year. For example, if two digit year cutoff is 2049 (default), 49 is interpreted as 2049 and 2050 is interpreted as 1950. To avoid ambiguity, use four-digit years.For information about specifying time values, see Time Formats. For information about specifying dates, see datetime and smalldatetime. enddateIs the ending date for the calculation. enddate is an expression that returns a 
    datetime or smalldatetime value, or a character string in a date format.Return TypesintegerResstartdate is subtracted from enddate. If startdate is later than enddate, a negative value is returned.
    DATEDIFF produces an error if the result is out of range for integer values. For milliseconds, the maximum number that can be represented is 24 days, 20 hours, 31 minutes and 23.647 seconds. For seconds, the maximum number that can be represented is approximately 68 years.
    The method of counting crossed boundaries such as minutes, seconds, and milliseconds makes the result given by DATEDIFF consistent across all data types. The result is a signed integer value equal to the number of datepart boundaries crossed between the first and second date. For example, the number of weeks between Sunday, January 4 and Sunday, January 11, is 1.ExamplesThis example determines the difference in days between the current date and the publication date for titles in the pubs database.USE pubsGOSELECT DATEDIFF(day, pubdate, getdate()) AS no_of_daysFROM titlesGO  See AlsoCAST and CONVERT Date and Time Functions
    Data Types
      

  3.   

    where DATEDIFF(yy, 出生日期, GETDATE()) = 50