You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server 2014导出datetime为yyyy-mm-ddTHH:MM:SS格式的方法

解决SQL Server 2014导出datetime为ISO 8601格式的问题

首先解释一下你看到的T:它是ISO 8601标准日期时间格式里的分隔符,用来明确区分日期部分(yyyy-MM-dd)和时间部分(HH:mm:ss),这种格式是跨系统交互(比如API、JSON数据交换)非常常用的标准格式,很多工具和服务都会默认识别它。

回到你的问题:SQL Server里没有直接输出这种格式的原生datetime类型——因为datetime是存储用的数据类型,它的显示格式是可以通过转换控制的,所以你确实需要把datetime字段转换成字符串类型(varchar/nvarchar)来生成目标格式。这里有两种实用的方法:

方法1:用CONVERT函数(性能优先)

SQL Server的CONVERT函数支持指定格式代码,其中格式126刚好对应ISO 8601的标准格式,直接就能生成带T的字符串:

-- 生成带毫秒的格式:yyyy-MM-ddTHH:mm:ss.mmm
SELECT CONVERT(VARCHAR(23), [Jobf_DteLog], 126) AS DateLogged FROM [tblJobs];

-- 如果不需要毫秒,用LEFT截取前19位即可:
SELECT LEFT(CONVERT(VARCHAR(23), [Jobf_DteLog], 126), 19) AS DateLogged FROM [tblJobs];

这个方法的优势是性能很高,适合处理大数据量的导出场景,因为CONVERT是SQL Server原生的高效转换函数。

方法2:用FORMAT函数(可读性优先)

从SQL Server 2012开始支持的FORMAT函数更直观,你可以直接写目标格式的字符串,不需要记格式代码:

SELECT FORMAT([Jobf_DteLog], 'yyyy-MM-ddTHH:mm:ss') AS DateLogged FROM [tblJobs];

这个方法的好处是代码更容易理解,如果你需要调整格式(比如加上时区信息)也更灵活,但缺点是性能比CONVERT稍差,适合数据量不大的导出场景。

你可以根据自己的导出数据量和需求来选择对应的方法,两种都能生成你需要的2019-08-15T08:30:00格式。

内容的提问来源于stack exchange,提问作者Michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:01:39