【问题标题】:Converting height and inches (with decimal) to inches将高度和英寸(带小数)转换为英寸
【发布时间】:2015-12-07 16:17:59
【问题描述】:

我有一个基于字符的高度字段,其中包含一些不规则条目。最典型的情况很简单,例如 6'3" 或 5'11'(易于转换)。不幸的是,我们也有一些在英寸值中带有小数的条目,例如 5'2.5" 或 5'3.25"。

我的目标是转换为基于整数的总英寸,去掉小数,然后四舍五入到最接近的英寸。

有什么帮助吗?

【问题讨论】:

  • 标记正在使用的 dbms 是一个好习惯
  • 您如何转换“直截了当”的案例,为什么其他案例不同?似乎将英尺乘以 12 并增加英寸对任何一种情况都有效。
  • @DStanley,简单地加上英寸并没有考虑到他希望它四舍五入到最接近的英寸。
  • 这应该是一个非常简单的改变 - 我的观点是 OP 现在是如何处理整数而不是十进制英寸的?
  • 将值存储为数字而不是字符串是一个非常好的主意。但是你为什么要让英寸变圆呢?为什么不存储您拥有的所有信息?选择数据时始终可以四舍五入。存储四舍五入的值后,您将无法再选择高度为 5'3" 或更小的所有记录,因为您将不再知道 5'3" 的条目实际上是指 5'2.5" 还是 5'3.25" .

标签: sql string type-conversion


【解决方案1】:

首先将您的脚(' 之前的数字)乘以 12,然后将您的英寸(' 和 " 之间的数字)四舍五入到最接近的整数,将这些数字相加,这就是您的身高,以英寸为单位 :)

此查询可能会有所帮助:

    SELECT
        CAST(SUBSTRING(your_column, 0, CHARINDEX ('''',your_column)) as INT)
        * 12
        + ROUND(CAST(SUBSTRING(your_column,
        CHARINDEX('''', your_column) + 1,
        LEN(your_column) - CHARINDEX('''',your_column) - 1) as DECIMAL),0)        
    as Height

【讨论】:

  • 如果代码被格式化为代码,我会投赞成票的。
  • 怎么样 :) 我是新来的,忘记了代码格式,希望这样更好
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-11
  • 2016-04-14
  • 1970-01-01
  • 2011-01-09
  • 1970-01-01
  • 2016-02-02
  • 2021-02-26
相关资源
最近更新 更多