SQL中是否存在Convert函数?如何将华氏温度转换为摄氏温度?
SQL温度单位转换(华氏度转摄氏度)
首先明确:SQL里的CONVERT函数主要用于数据类型转换(比如把字符串转成日期、数值转成字符串),并不直接实现温度单位转换。温度单位转换靠基础算术运算就能完成,固定公式为:
摄氏度 = (华氏度 - 32) × 5 ÷ 9
具体实现示例
假设你的天气表名为weather_data,存储英国地区温度的字段是temp_fahrenheit(华氏度),可以用以下SQL查询转换后的摄氏度:
SELECT region, temp_fahrenheit AS 华氏度, ROUND((temp_fahrenheit - 32) * 5 / 9, 2) AS 摄氏度 FROM weather_data WHERE region = '英国';
ROUND(..., 2)用于保留两位小数,让结果更直观,不需要的话可以直接去掉- 如果需要永久将表中华氏度替换为摄氏度,可以执行UPDATE语句:
UPDATE weather_data SET temp_fahrenheit = ROUND((temp_fahrenheit - 32) * 5 / 9, 2) WHERE region = '英国';
注意:执行UPDATE前建议先用SELECT验证转换结果,或者备份数据,避免误操作。
关于SQL的CONVERT函数
如果之后需要处理数据类型转换(比如把温度数值转成字符串),不同SQL方言的CONVERT用法略有差异:
- SQL Server:
CONVERT(VARCHAR(10), temp_celsius) - MySQL:
CONVERT(temp_celsius, CHAR) - PostgreSQL:
CAST(temp_celsius AS VARCHAR)(PostgreSQL更常用CAST,效果和CONVERT一致)
内容的提问来源于stack exchange,提问作者Will_0817
相关产品推荐
相关产品推荐

