私はTSQLについて学んでおり、特定の一連の映画について詳しく説明するAppを行うように割り当てられています。私が完成した製品に追加したいものの1つは、主演女優誕生日と映画の初日ですが、初演時に俳優の年齢を返すDATEDIFFです。DATEDIFF関数のテーブル値を使用する
私の質問は、それらの日付がすでにテーブルに存在する場合、DATEDIFFステートメントを指定すると、どのように日付を指定するのですか?
表の例が続きます。
ボンド
BondID FirstName LastName Birthdate
1 Sean Connery 8/25/1930
2 George Lazenby 9/5/1939
3 Roger Moore 10/14/1927
4 Timothy Dalton 3/21/1946
5 Pierce Brosnan 5/16/1953
6 Daniel Craig 3/2/1968
フィルム
ID BondID FilmTitle Premiere
1 1 Dr. No 1963-05-08
2 1 From Russia With Love 1974-04-08
3 1 Goldfinger 1964-12-22
4 1 Thunderball 1965-12-29
ここで私が現在持っているものです。
SELECT b.Birthdate, f.Premiere, b.FirstName, b.LastName, f.FilmTitle
FROM Bond b INNER JOIN FilmID f ON b.BondID = f.BondID
WHERE b.BondID = 1
SELECT DATEDIFF(YEAR, GETDATE(), GETDATE()) AS "YearDif"
WHERE GETDATE() = Bond.Birthdate AND GETDATE() = f.Premiere
データ私は初演の時に俳優の年齢を述べて列を追加したいと思います
Birthdate Premiere FirstName LastName FilmTitle
1 1930-08-25 1963-05-08 Sean Connery Dr. No
2 1930-08-25 1974-04-08 Sean Connery From Russia With Love
3 1930-08-25 1964-12-22 Sean Connery Goldfinger
4 1930-08-25 1965-12-29 Sean Connery Thunderball
...私はその1のハンドルを持っていると思います...しかし...
DATEDIFF部分の2番目の部分は正しくありませんが、DATEDIFFに日付の値を取得する方法を教えてください。
何か助けが奇妙になるでしょう!
おそらくGETDATE( )。現在のシステム時間を返します。それはあなたのDATEDIFFが常に0を返すことを意味します。そして私はあなたが正確なシステム時間と一致するPremiereのBirthdateの価値がないと仮定します。あなたのケースでは、DATEDIFFのようなものになります(Year、Bond.Birthdate、f.Premiere )。注意すべき点の1つは、DATEDIFFが交差するしきい値の数を数えることです。その日から何年経ったかはわかりません。 –