如何将Azure SQL Database查询到的timestamp格式化为指定时间格式
解决方案
方案1:SQL查询层直接格式化
在Azure SQL查询语句中使用内置函数处理datetime字段,返回的结果直接符合格式要求,无需代码层二次处理:
- 使用
FORMAT函数,直接指定输出格式:
SELECT FORMAT(last_updated_user, 'yyyy-MM-dd HH:mm:ss') AS last_updated_user FROM 你的表名
调用getString("last_updated_user")即可直接获取2004-09-23 10:52:00格式的结果。
- 对性能有要求时可使用
CONVERT函数,指定样式码120:
SELECT CONVERT(VARCHAR(19), last_updated_user, 120) AS last_updated_user FROM 你的表名
样式码120对应yyyy-MM-dd HH:mm:ss的ODBC标准格式,取长度19刚好排除毫秒小数位。
方案2:Java代码层格式化Timestamp对象
无需修改SQL,直接处理getTimestamp()返回的对象即可:
import java.sql.Timestamp; import java.time.format.DateTimeFormatter; // 获取Timestamp类型的字段值 Timestamp updateTime = sqlRowSet.getTimestamp("last_updated_user"); // 定义目标格式 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); // 格式化得到目标字符串 String result = updateTime.toLocalDateTime().format(formatter);
该方式完全基于内置格式化类实现,不需要调用字符串截取、替换类方法。
内容的提问来源于stack exchange,提问作者anto clinton
相关产品推荐
相关产品推荐

