sql - SQL server:当您只能访问月份和年份时计算年龄
问题描述
我有一个大数据文件,有 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
解决方案
尝试
select cast(replace('2019-01'+'01', '-', '.') as numeric(8,4)) - cast(replace('2017-11'+'01', '-', '.') as numeric(8,4))
推荐阅读
- javascript - promise.all 似乎并没有等待所有的承诺解决
- css - 自定义类名语义 ui 反应
- jenkins - Jenkins管道得到NotSerializableException:使用sh代码时的WorkflowJob
- python - 性能优化(python):加速 .append() 到 pandas DataFrame
- r - 从函数返回列表对象
- java - 取消注册 TYPE_ORIENTATION 传感器
- python - 删除目录中的文件时找不到错误,Python
- c# - 我怎样才能收到我的服务正在被卸载的通知?
- tornado - Tornado 端点匹配
- c# - Selenium Click 在 Windows10 IE11 中不起作用