0
我做了一个批量插入到表中。SQL:如何在批量插入表格并获取总量后从文件中提取正确的日期值?
所有数据插入到Data
列
我有类似数据列的里面:
1451678889 1451678889 2017092 2017092 500,000.00 10,000.00
1451678889 1451678889 2017091 2017091 500,000.00 10,000.00
1451678889 1451678889 2017092 2017092 500,000.00 10,000.00
现在,我需要在yyyy-mm-dd
格式从2017092
得到一个日期: 其中2017年和92年是今年的一天。我需要按日期分组总数。
当执行此查询:
select substring([data],34,15) from Staging_Table where ltrim(rtrim(substring([Data],42,5))) = '92'
我得到正确的字符串2017092
当尝试这样做,以测试逻辑:
select dateadd(day, ltrim(rtrim(right('2017092',3))) - 1, DATEFROMPARTS(left('2017092',4) + 0, 1 ,1))
我得到这个:2017-04-02
,这是2017年和第92天的正确日期
现在,替代过程“2017092”从表中的实际数据时:
select dateadd(day,ltrim(rtrim(right(substring('1451678889 1451678889 2017092 2017092',34,15),3))) - 1, DATEFROMPARTS(left(substring('1451678889 1451678889 2017092 2017092',34,15),4) + 0, 1,1))
或查询实际的表:
select dateadd(day,right(ltrim(rtrim(substring([Data],34,15))),3) - 1, DATEFROMPARTS(left(substring([Data],34,15),4) + 0, 1, 1)) from Staging_Table
where ltrim(rtrim(substring([Data],42,5))) = '92'
我得到一些奇怪的结果:0002-04-02
- 与错年。
我在做什么错?
您需要修复您的导入,以便数据进入不同的列。 –