如何修改Excel中粘贴日期时间的默认格式?
如何修改Excel中粘贴日期时间的默认格式?
我完全懂你的烦恼——每次从SSMS复制带毫秒的日期时间数据(比如2024-09-03 21:10:00.8)到Excel,默认居然只显示时间,每次都要手动选中列调整格式,实在太折腾了!下面给你几个实用的解决办法,按需选择:
方法一:修改Excel默认单元格格式模板(一劳永逸)
这个方法能让所有新建的Excel文件都用你想要的日期时间格式,彻底解决默认问题:
- 打开一个空白Excel工作簿,点击左上角行号和列标交叉的方块,选中所有单元格
- 右键选中区域,选择「设置单元格格式」,切换到「数字」标签页,选择「自定义」类别
- 在「类型」输入框里,输入你需要的日期时间格式,比如对应毫秒需求的
yyyy-mm-dd hh:mm:ss.0,或者你习惯的mm/dd/yyyy hh:mm am/pm格式 - 点击「文件」→「另存为」,保存类型选择「Excel模板(.xltx)」,文件名改成
Book.xltx,保存路径默认是C:\Users\你的用户名\AppData\Roaming\Microsoft\Templates,替换掉原来的默认模板即可 - 之后新建的Excel文件,所有单元格都会默认使用这个格式,粘贴日期时间时就会完整显示了
方法二:粘贴时用选择性粘贴快速处理
如果不想修改默认模板,每次粘贴时可以用这个小技巧:
- 在SSMS中复制查询结果后,回到Excel,右键点击要粘贴的单元格
- 选择「选择性粘贴」→「文本」,把内容以纯文本形式粘贴进来
- 选中粘贴好的列,右键设置单元格格式为你需要的日期时间格式即可
方法三:从SSMS端提前格式化数据
在查询时直接把datetime字段转换成你想要的字符串格式,这样复制粘贴到Excel就不用再调整了:
比如在SQL语句里用CONVERT函数格式化:
SELECT CONVERT(varchar, your_datetime_column, 121) AS formatted_datetime FROM your_table
这里的121格式代码对应yyyy-mm-dd hh:mm:ss.nnn,刚好匹配你的毫秒需求,复制到Excel后直接就是完整的日期时间显示。
备注:内容来源于stack exchange,提问作者Jason




