Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我需要将SQL中现有的日期字段转换为月份和年份,并将它们放在两个新列的新表中_Sql_Sql Server - Fatal编程技术网

我需要将SQL中现有的日期字段转换为月份和年份,并将它们放在两个新列的新表中

我需要将SQL中现有的日期字段转换为月份和年份,并将它们放在两个新列的新表中,sql,sql-server,Sql,Sql Server,我已经试过了 INSERT INTO #TempTable (year, month, day) SELECT DATEPART(yyyy, dtProc) as year, DATEPART(mm, dtProc) as month, FROM DailyHist 但在此插入之后,我需要插入更多字段,然后使用以下SQL语句为最近插入的月份和年份字段创建空值: INSERT INTO #TempTable(sCliNum, dtProc, sAssignNum, sColle

我已经试过了

INSERT INTO #TempTable (year, month, day)
SELECT 
    DATEPART(yyyy, dtProc) as year,
    DATEPART(mm, dtProc) as month,
FROM DailyHist
但在此插入之后,我需要插入更多字段,然后使用以下SQL语句为最近插入的月份和年份字段创建空值:

INSERT INTO #TempTable(sCliNum, dtProc, sAssignNum, sCollectNum, cFees, cAdj1, cAdj2)
SELECT 
    sCliNum, 
    dtProc, 
    sAssignNum, 
    sCollectNum, 
    cFees, 
    cAdj1, 
    cAdj2 
FROM DailyHist
DailyHist表格布局如下所示:

sCliNum dtProc                  sAssignNum  sCollectNum    cFees   cAdj1       cAdj2
----------------------------------------------------------------------------------
BADA    2011-02-01 00:00:00.000 ADJ         (Adj)          0.00    350402.30   0.00
BADA    2011-02-01 00:00:00.000 INTERE      (Adj)          0.00        43.77   0.00
这就是我想要实现的目标

sCliNum dtProc  sAssignNum  sCollectNum cFees   cAdj1   cAdj2   year    month
------------------------------------------------------------------------------------
COUN    2013-07-01 00:00:00.000     IntHis  0.00    0.00    0.00    NULL    NULL    NULL     
COUN    2013-07-01 00:00:00.000 C1  FeeHis  0.00    0.00    0.00    NULL    NULL    NULL    
请帮忙


谢谢

根据你所说的,这就是我认为你正在努力实现的目标

INSERT INTO #TempTable(sCliNum, dtProc, sAssignNum, sCollectNum, cFees, cAdj1, cAdj2, year, month, day)
SELECT 
    sCliNum, 
    dtProc, 
    sAssignNum, 
    sCollectNum, 
    cFees, 
    cAdj1, 
    cAdj2,
    DATEPART(yyyy, dtProc), -- year
    DATEPART(mm, dtProc),   -- month
    DATEPART(dd, dtProc)    -- day
FROM DailyHist

对于SQL语句不起作用的语句,请编辑它。第二次插入时使用的SQL语句是什么?为什么要插入空值?这是第二次插入,我不想插入空值,只是从这些列中删除了值。插入到DettablesClinum、dtProc、sAssignNum、SCOLLETNUM、cFees、cAdj1、cAdj2从DailyHistWell中选择sCliNum、dtProc、sAssignNum、SCOLLETNUM、cFees、cAdj1、cAdj2。使用该语句,您尝试插入NULL,因为您没有指定进入这些列的值。为了帮助我们了解您需要什么,请编辑您的问题,以便我们可以查看您选择的表的布局以及您想要实现的预期最终结果。您正在将行添加到临时表中,而不告诉它们插入位置。在长列表中添加where子句,插入ie:where year=1999,month=11,day=2。更妙的是,将这两个表与添加到Detriable的主键/标识关联起来。