1

日時を挿入すると、トリガーを使用して日付、月、年、曜日名を日時から分割するという質問がありました。次に、次の列で日付、時刻、月、年、曜日、年を数えます(データ内の男性の年齢を知るため)それは可能ですか?

たとえば、挿入すると

INSERT INTO MAN VALUES ('04/06/1982')

するとこうなる

DATETIME                  DATE         MONTH     YEAR      DAYNAME     AGE
04/06/1982 00:00:00       04           06        1982      friday      27
4

3 に答える 3

1

これを試して :-

Declare @myDate datetime 
set @myDate='19820604'    --YYYYMMDD


Select @myDate as DateTime,
       datename(day,@myDate) as Date,
       month(@myDate) as Month,
       datename(year,@myDate) as Year,
       Datename(weekday,@myDate) as DayName,
       DATEDIFF ( year , @myDate , getdate() ) as Age

結果

  ╔══════════════════════════════╦══════╦═══════╦══════╦═════════╦══════════╗
  ║           DateTime           ║ DATE ║ MONTH ║ YEAR ║ DAYNAME ║ Age      ║
  ╠══════════════════════════════╬══════╬═══════╬══════╬═════════╬══════════╣
  ║ April, 06 1982 00:00:00+0000 ║    4 ║     6 ║ 1982 ║ Friday  ║       31 ║
  ╚══════════════════════════════╩══════╩═══════╩══════╩═════════╩══════════╝

SQL フィドルのデモ

于 2013-05-09T10:13:22.210 に答える
0

年齢が正しく表示されるように、コードがわずかに変更されています。

    Select myDate,myDateDate,myDateMonth,myDateYear,myDateDayName, Convert(varchar(50),Age)+ ' Years and '+Convert(varchar(50),nodays) +'days' {Age] from
        (
        Select @myDate as myDate,
               datename(day,@myDate) as myDateDate,
               month(@myDate) as myDateMonth,
               datename(year,@myDate) as myDateYear,
               Datename(weekday,@myDate) as myDateDayName,
               DATEDIFF ( year , @myDate , getdate() ) Age  , 
               DATEDIFF       ( dd , @myDate , getdate() ) -365* DATEDIFF ( year , @myDate , getdate() )   as nodays
        ) As a

ありがとうアルン

于 2013-05-09T11:32:14.883 に答える