sql - 将 Decimal 或 Varchar 转换为日期

标签 sql sql-server date casting converter

我有 2 个字段。

出生 = 数据类型十进制 (12,4) & 日期 = 数据类型日期

Birth         Date 
19650101   2015-07-09  

如何得到这样的结果

我想要这样的结果

Birth             Date          
1965-01-01       2015-07-09       

其中出生是日期数据类型而不是小数 (12,4)

最佳答案

要将数字 19650101 转换为日期,请使用

CONVERT(DATETIME, CAST(Birth AS VARCHAR(8)), 112)

要获取年数(精确到小数点后一位),您可以执行以下操作:

ROUND(
    DATEDIFF(day,
         CONVERT(DATETIME, CAST(Birth AS VARCHAR(8)), 112),
         [Date])/365.25
     ,1)

这并不准确,但应该足够接近十分之一年。

关于sql - 将 Decimal 或 Varchar 转换为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31319348/

相关文章:

sql - pl sql条件where子句

sql - 显示具有相关性数据的每个组的最高结果?

sql - 检索一组的随机行

r - 两个日期之间的月数

java - java中的错误SQL : Illegal operation on empty result set

mysql - 如何使用 row_number、lag/lead、join SQL 解决问题

c# - 大量数据的插入性能缓慢 (SQL Server/C#)

sql-server - 无法使用CAST功能

sql - 如何将 Teradata SQL 中的 Char 格式的 'date' 更改为日期格式?

javascript - jquery数据表日期排序问题