我需要将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的主键/标识关联起来。