2017-03-17 13 views
0

SQLクエリから、FRI DEC 13 1991 00:00:00 GMT + 0100(CET)を日付の結果として受け取ることができます。しかし、私が望むのは、現在のユーザーの年齢です。これを計算するのにとにかくありますか?あるいは、私が使うことができる名義の拡張子はありますか?御時間ありがとうございます。あなたはこのようにJavaScriptのDateオブジェクトを使用することができますSQLのDATEデータ型に基づいてユーザー年数を計算する方法

+0

どのデータベースを使用していますか?日付型の列ですか? – GurV

+0

@ GurV SQLデータベースです。タイプはdateです。 –

+0

あなたはその日付を返すクエリを制御できますか?また、@ GurVはあなたがMySQL、Oracle、MS SQLを使用しているかどうか尋ねていました...? –

答えて

0
SELECT DATEDIFF(day,'olddate','recentdate') AS AGE FROM your_table; 

戻り値は、AGEです。使用している日付形式を使用しますが、それは問題のSQLクエリです

0

yearで何かを行うには

var sqlDate = new Date('FRI DEC 13 1991 00:00:00 GMT+0100 (CET)'); 
//log year 
console.log(sqlDate.getFullYear()); 
var intPersonYOB = sqlDate.getFullYear() 

、新しいDateオブジェクトを作成し、次のようにあなたはそれでいくつかの数学を行うことができますので、現在の年を取得:

var currentDate = new Date(); 
var currentYear = currentDate.getFullYear(); 
var intPersonAge = currentYear - intPersonYOB; 
console.log(intPersonAge);` 

これは十分なはずの彼の年齢を取得

0

機能はあなたの文字列によって年齢を返します。あなたは同じアプローチを使うことができます。

ar str = 'FRI DEC 13 1991 00:00:00 GMT+0100 (CET)'; 

age = getAge(str); 

function getAge(str) { 
    var matches = str.match(/[a-z]{3} ([a-z]{3}) (\d{1,2}) (\d{4})/i); 
    str = matches[3] + '-'; 
    switch (matches[1]) { 
    case 'JAN': 
     str += '01-'; 
     break; 
    case 'FEB': 
     str += '02-'; 
     break; 
    case 'MAR': 
     str += '03-'; 
     break; 
    case 'APR': 
     str += '04-'; 
     break; 
    case 'MAY': 
     str += '05-'; 
     break; 
    case 'JUN': 
     str += '06-'; 
     break; 
    case 'JUL': 
     str += '07-'; 
     break; 
    case 'AUG': 
     str += '08-'; 
     break; 
    case 'SEP': 
     str += '09-'; 
     break; 
    case 'OCT': 
     str += '10-'; 
     break; 
    case 'NOV': 
     str += '11-'; 
     break; 
    case 'DEC': 
     str += '12-'; 
     break; 
    } 
    str += parseInt(matches[2]) < 10 ? '0' + matches[2] : matches[2]; 
    var birthDate = new Date(str); 
    var nowDate = new Date(); 
    return nowDate.getFullYear() - 1 - birthDate.getFullYear() + (
     birthDate.getMonth() < nowDate.getMonth() ? 1 : 
     birthDate.getMonth() == nowDate.getMonth() ? 
      birthDate.getDate() <= nowDate.getDate() ? 1 : 0 
     : 0 
    ); 
} 
関連する問題