-5

生年月日をデータベースに保存しています.1年後、年齢を増やしてデータベースにも更新したいと考えています。

4

2 に答える 2

6

生年月日を保存します。age を計算列にします。

CREATE TABLE [Table](
    /* Columns */
    [DateOfBirth] [date] NULL,
    [Age]  AS CASE
    WHEN DATEADD(year,-DATEDIFF(year,DateOfBirth,CURRENT_TIMESTAMP),CURRENT_TIMESTAMP) < DateOfBirth THEN
        DATEDIFF(year,DateOfBirth,CURRENT_TIMESTAMP) - 1
    ELSE
        DATEDIFF(year,DateOfBirth,CURRENT_TIMESTAMP)
    END,
    /* Constraints, etc */
)

この方法では、自分で作業を行う必要はありません。

于 2012-05-16T06:36:53.123 に答える
1

年齢を計算値として実装できます。このようにして、クエリの時点で年齢は常に正しいです (http://www.mssqltips.com/sqlservertip/1682/using-computed-columns-in-sql-server-with-persisted-values/)

于 2012-05-16T06:39:07.373 に答える