0

ビューには、日付部分を提供する 2 つの列があります。

それらは月番号と年です。

日付/時刻フィールドである新しい列が必要です。他の 2 つの列が提供する月と年の最初の日付である必要があります。

つまり4, 2011、する必要があります

2011-04-01 00:00:00.000

新しいコラムで

現在のセットアップは次のようになります。

month_number    incident_year
4   2011
5   2011
6   2011
7   2011
8   2011
9   2011
10  2011
11  2011
12  2011
1   2012
2   2012
3   2012
4   2012
5   2012
6   2012
4

3 に答える 3

3
SELECT 
  incident_year, month_number,
  dt = DATEADD(MONTH, (incident_year-1900)*12+month_number-1, '19000101') 
  FROM dbo.view_name;

0-date を使用して、少し冗長にすることもできます。

SELECT 
  incident_year, month_number,
  dt = DATEADD(MONTH, (incident_year-1900)*12+month_number-1, 0) 
  FROM dbo.view_name;

SQL Server 2012 では、これをより簡単に行うことができます。

SELECT DATEFROMPARTS(incident_year, month_number, 1)
  FROM dbo.view_name;
于 2012-07-12T15:43:08.343 に答える
1
 Select CAST(CAST( incident_year AS varchar(4)) + '-' + 
        CAST(month_number AS varchar(2)) + '-01' AS DATETIME) as incident_Year
 from YourView
于 2012-07-12T15:39:23.360 に答える
0
Alter table yourTable add newDateColumn datetime NULL

update yourTable set newDateColumn = 
   CONVERT(datetime, CAST(incident_year as varchar(4)) +'-' CAST(month_number as varchar(2))+'-01 00:00:00.000', varchar(30)) 
   from YourTable
于 2012-07-12T15:42:37.133 に答える