首页 > 数据库 > mysql教程 > 如何将 SQL Server 中的日期时间自定义格式为'DDMMM”和'HHMMT”?

如何将 SQL Server 中的日期时间自定义格式为'DDMMM”和'HHMMT”?

Patricia Arquette
发布: 2025-01-01 14:58:11
原创
881 人浏览过

How to Custom Format DateTime in SQL Server to 'DDMMM' and 'HHMMT'?

SQL Server 中的自定义日期/时间格式

目标: 将日期时间字段格式化为另外两列: ' DDMMM' 和 'HHMMT'(其中“T”代表“A”代表上午,“P”代表p.m.).

场景:给定一个格式为“YYYY-MM-DD HH:MM:SS.S”的日期时间字段,所需的输出为:

  • “DDMMM”的“12OCT” 'HHMMT' 列
  • '0119P'

解决方案:

不要使用存储过程,请考虑使用函数来封装逻辑。

DECLARE @myTime AS DATETIME;

SET @myTime = GETDATE();

SELECT @myTime AS OriginalTime;

SELECT DATENAME(DAY, @myTime) + SUBSTRING(UPPER(DATENAME(MONTH, @myTime)), 0, 4) AS 'DDMMM';
登录后复制

输出:

OriginalTime          DDMMM
---------------------- --------------------
2023-03-08 13:19:12.0 08MAR
登录后复制

注意:

  • 在引号内使用字符串组合('') 将多个字符串连接到结果中。
  • 避免对日期时间数据类型进行字符/字符串操作,因为它们会影响性能。

其他提示:

参考各种场景下有用的日期转换函数:

-- Getting Parts of a DateTime
SELECT FLOOR(CAST(GETDATE() AS FLOAT)) AS DateOnly, GETDATE() - FLOOR(CAST(GETDATE() AS FLOAT)) AS TimeOnly;

-- Relative Dates
SELECT GETDATE() AS CurrentTime, DATEADD(dd, 1, GETDATE()) AS Tomorrow;
SELECT GETDATE() AS CurrentTime, DATEADD(hh, 1, GETDATE()) AS InOneHour;

-- Yearly
SELECT DATEADD(yy, -1, GETDATE()) AS LastYear, DATEADD(yy, 1, GETDATE()) AS NextYear;
SELECT DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0) AS CurrentYearStart, DATEADD(ms, -4, DATEADD(dd, DATEDIFF(dd, 0, GETDATE()) + 1, 0)) AS CurrentYearEnd;
登录后复制

以上是如何将 SQL Server 中的日期时间自定义格式为'DDMMM”和'HHMMT”?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板