我是一个菜鸟,所以对等待的noobism等道歉。
以下是我正在使用的内容:
此表捕获来自远程传感器的数据,包括湿度和温度。在这种情况下,我专门使用event_type ="传感器",event_description =" Celsius"和event_data =以摄氏度为单位的温度。
我想创建一个视图,提供将摄氏温度转换为华氏温度的列。 (或开尔文等)
表格列:
event_id int(11) AI PK
event_date date
event_time time
event_type char(50)
event_description char(50)
event_data char(100)
event_platform char(100)
感谢您的帮助!
event_id event_date event_time event_type event_description event_data
618 2017-11-04 20:17:03 Sensor Celsius 26.2999992371
617 2017-11-04 20:17:03 Sensor Humidity 62.0
616 2017-11-04 19:17:03 Sensor Celsius 27.1000003815
615 2017-11-04 19:17:03 Sensor Humidity 59.7000007629
614 2017-11-04 18:17:03 Sensor Celsius 28.5
613 2017-11-04 18:17:03 Sensor Humidity 56.9000015259
612 2017-11-04 17:17:03 Sensor Celsius 31.1000003815
611 2017-11-04 17:17:03 Sensor Humidity 51.4000015259
答案 0 :(得分:0)
我预见到该表的设计存在问题。为什么数字数据会在char(100)列中捕获?那真的不好。也不确定为什么要使用如此多的固定宽度的char列,这将大大浪费存储空间。
select
event_type
, event_date date
, event_time time
, event_description
, event_data as Celcius
, cast(event_data as decimal(12,3)) * 1.8 + 32 as Fahrenheit
, cast(event_data as decimal(12,3)) + 273.15 as Kelvin
from yourtable
where event_type = 'Sensor'
and event_description = 'Celsius'
nb:十进制(12,3)的选择没有科学,就在我的手指落地的地方