2012-02-27 7 views
4

年齢を年数で計算することができない日付/時刻データ型として格納されている列があります。さておき、この質問に、私は、クエリが実行されるたびに現在の日付を選択し、[日付]を使用しようとしましたが、それはちょうど私にプロンプ​​トを与えたとして、私はアクセス2007年にDatediffの返却日数年数はありません。Access 2007

SELECT Visits.ID, Visits.DOB, DateDiff("y",[DOB],[date]) AS age 
FROM Visits; 

DateDiff機能を使用しています日付をタイプするには、自動的にそれをつかまえませんでした。

DOBは、各レコードの生年月日です。

+1

質問の2番目の部分に答えるには、[Date]の代わりに 'DATE()'を使用してください。 'DateDiff(" yyyy "、[DOB]、Date())' – GarethD

+1

にする必要があります。日&月のアカウント、例えばその式は実際の誕生日を越えて期間がないので今年生まれの誰かが0を返します –

+1

はい、アクセスは '[date]'はフィールドだと考えています。角括弧はフィールドを示し、フィールド名として '[SELECT]'や関数名として '[DateDiff]'などの予約語を使用することを許可します。 –

答えて

5

"y"の代わりにinterval引数に "yyyy"を指定します。 "yyyy"は年、 "y"は年の日です。

+0

ありがとう、それは私を可能にする5分で受け入れるだろう。日付を入力する代わりに、今日の日付を使用することについて、あなたは何を言っていますか? – wootscootinboogie

+0

注意!違いはちょうど1日ですが、 'DateDiff(" yyyy "、#2010-12-31#、#2011-01-01#)'は1を返します! –

+0

はい、 'Year(date2) - Year(date1)'を計算します。 –

関連する問題