Sqlserver格式化日期

时间:2025-02-17 11:32:53
  • 使用CONVERT函数格式化日期:
    CONVERT函数允许你将日期/时间值转换为特定的字符串格式。它接受三个参数:转换的目标数据类型(通常是一个字符串类型)、要转换的表达式(日期或时间值)和样式代码。
    示例:
    将日期格式化为 ‘YYYY-MM-DD’ 格式:
SELECT CONVERT(varchar(10), GETDATE(), 120); 

将日期和时间一起格式化为 ‘YYYY-MM-DD HH:MI:SS’ 格式:

SELECT CONVERT(varchar(19), GETDATE(), 121);
  • 使用FORMAT函数格式化日期:
    FORMAT函数提供更多的灵活性,但它不一定是最快的选项,并且在SQL Server 2012及更高版本中可用。
    示例:
    使用自定义格式字符串格式化日期:
SELECT FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss');

请注意,FORMAT函数使用的格式字符串遵循.NET框架的日期和时间格式说明符。

  • 使用DATENAME和DATEPART函数:
    如果你想单独提取日期部分的信息,如年、月、日、小时等,可以使用DATENAME和DATEPART函数。
    示例:
    获取当前日期的年份、月份和日期:
SELECT DATENAME(year, GETDATE()) AS Year,
       DATENAME(month, GETDATE()) AS Month,
       DATENAME(day, GETDATE()) AS Day;

获取日期的特定部分:

SELECT DATEPART(year, GETDATE()) AS YearNumber,
       DATEPART(month, GETDATE()) AS MonthNumber,
       DATEPART(day, GETDATE()) AS DayNumber;

在实际应用中,考虑到性能问题,推荐优先使用CONVERT函数,除非你需要FORMAT函数提供的额外灵活性。