将 Varchar 转换为 Float/double

马克·洛伦兹·维达

我有列 'Age' (Varchar) 如何选择查询并将其转换为 (float)

Pet_Name          Age(varchar)
John 2 年 6 个月。
安妮 3 岁零 6 个月。

输出:
Pet_Name         Age(float/double)
John                   2.5
Anne 3.5

我的问题是输入不遵循特定的日期/年龄格式,而是作为字符串输入的。

Hadoop的

假设年龄列总是有两个数字,我在 Redshift 中使用REGEXP_SUBSTR函数写下答案:

create temp table pets (petname varchar(10), age varchar(20));

insert into pets values ('john','2 years 6 mnths');
insert into pets values ('anne','3 Years and 4 months');
insert into pets values ('buddy','4 yrs and 3 Mnths');
insert into pets values ('tommy','9 Years and 5 mnths');
insert into pets values ('alex','5 YEARS and 12 mnts');
insert into pets values ('bob','0 year and 7 Mnts');
insert into pets values ('danny','10 years 11 mnths');
insert into pets values ('sunny','81 years 10 mnths');


select petname,(REGEXP_SUBSTR(AGE,'[0-9]|[0-9][0-9]',1))::integer+(REGEXP_SUBSTR(AGE,'[0-9]|[0-9][0-9]',3))/12 as age from pets;

+--------------------+
|petname   | age     | 
+--------------------+
|john      |2.5000   |
|sunny     |81.8333  |
|danny     |10.9166  |
|anne      |3.3333   |
|alex      |6.0000   |
|tommy     |9.4166   |
|bob       |0.5833   |
|buddy     |4.2500   |
+--------------------+

注意:以上答案仅适用于年龄列中有两个数字的情况

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将varchar转换为int

来自分类Dev

将varchar转换为datetime

来自分类Dev

将文本转换为Varchar

来自分类Dev

将varchar转换为int

来自分类Dev

将日期转换为varchar

来自分类Dev

将VARCHAR(n)转换为精确的FLOAT

来自分类Dev

SQL将varchar列转换为float

来自分类Dev

SQL将float转换为varchar

来自分类Dev

将varchar转换为datetime时出错

来自分类Dev

使用IIF将float转换为varchar

来自分类Dev

将varchar(ddmmyyyy)转换为日期格式

来自分类Dev

MySQL将varchar转换为日期php

来自分类Dev

SQL语句将varchar转换为整数

来自分类Dev

将UNIX Varchar转换为日期时间

来自分类Dev

将varchar中的datetime转换为datetime

来自分类Dev

无法将varchar转换为float

来自分类Dev

将varchar转换为bigint时出错

来自分类Dev

将varchar转换为datetime并添加秒

来自分类Dev

TSQL将HHMMSS的VARCHAR转换为TIME

来自分类Dev

Postgres将Varchar []转换为JSON

来自分类Dev

将 Varchar 转换为时间格式

来自分类Dev

ssms 无法将 varchar 转换为数字

来自分类Dev

将“42978.6736458333”varchar 转换为日期时间

来自分类Dev

将datetime转换为varchar从MSSQL转换为MYSQL

来自分类Dev

将date(varchar)和time(varchar)转换为datetime Oracle

来自分类Dev

将varchar转换为smallint时发生转换错误

来自分类Dev

将varchar转换为int时转换失败

来自分类Dev

将varchar转换为smallint时发生转换错误

来自分类Dev

将 varchar 转换为 INT 时转换失败