【发布时间】:2019-12-04 15:02:42
【问题描述】:
我有一个大数据文件,有 58,000,000 条记录,其中包含一个名为 Birth_Month 的字段,其中包含人们的出生月份和年份。它以字符串形式存储为 yyyy-mm。我需要计算截至 2018-APR-01 的年龄(任何日期格式)。
我知道的唯一方法是将 Birth_Month 与 01 连接,使其变为 yyyy-mm-dd,然后将其转换为日期字段。然后按照通常的方法计算年龄。
但是,由于文件很大,而且我使用的网络非常繁忙,我想知道是否有更有效的方法来做到这一点?
编辑我在测试数据集上尝试了我上面提到的方法 - 它不起作用!:
update #TEST2
set [dob] = #TEST2.Birth_Month + '-01
Select Birth_Month,
DATEDIFF(yyyy,01-04-2018,dob)
from
#TEST2
【问题讨论】:
-
你的方法没问题。
-
大数据文件是指本地文件还是存储在 sql server 中的数据?
-
它在服务器上,但是流量很大
-
“它不起作用”是什么意思?
-
在示例数据中,这是我得到的:对于 DOB:01/02/2013 日期:01/04/2018 答案是 119 而不是 5
标签: sql sql-server-2008