SQL 控制时间输出的格式

本文详细介绍了SQL中的convert函数如何用于日期和时间类型的格式转换。通过不同的style参数,可以实现多种日期时间格式的输出,例如2007-8-31或08/20/2007等。

SQL中的convert函数,在SQL语句中select convert(nvarchar(10),addtime,120)  from tablename
      参数为120,时间输出为:2007-8-31;  参数为101,时间输出为 08/20/2007    
格式:
CONVERT(data_type,expression[,style])

说明:
此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)
相互转换的时候才用到.

例子:
SELECT CONVERT(varchar(30),getdate(),101) now
结果为
now
---------------------------------------
09/15/2001



style数字在转换时间时的含义如下

-------------------------------------------------------------------------------------------------
Style(2位表示年份) | Style(4位表示年份) | 输入输出格式
-------------------------------------------------------------------------------------------------
- | 0 or 100 | mon dd yyyy hh:miAM(或PM)
-------------------------------------------------------------------------------------------------
1 | 101 | mm/dd/yy
-------------------------------------------------------------------------------------------------
2 | 102 | yy-mm-dd
-------------------------------------------------------------------------------------------------
3 | 103 | dd/mm/yy
-------------------------------------------------------------------------------------------------
4 | 104 | dd-mm-yy
-------------------------------------------------------------------------------------------------
5 | 105 | dd-mm-yy
-------------------------------------------------------------------------------------------------
6 | 106 | dd mon yy
-------------------------------------------------------------------------------------------------
7 | 107 | mon dd,yy
-------------------------------------------------------------------------------------------------
8 | 108 | hh:mm:ss
-------------------------------------------------------------------------------------------------
- | 9 or 109 | mon dd yyyy hh:mi:ss:mmmmAM(或PM)
-------------------------------------------------------------------------------------------------
10 | 110 | mm-dd-yy
-------------------------------------------------------------------------------------------------
11 | 111 | yy/mm/dd
-------------------------------------------------------------------------------------------------
12 | 112 | yymmdd
-------------------------------------------------------------------------------------------------
- | 13 or 113 | dd mon yyyy hh:mi:ss:mmm(24小时制)
-------------------------------------------------------------------------------------------------
14 | 114 | hh:mi:ss:mmm(24小时制)
-------------------------------------------------------------------------------------------------
- | 20 or 120 | yyyy-mm-dd hh:mi:ss(24小时制)
-------------------------------------------------------------------------------------------------
- | 21 or 121 | yyyy-mm-dd hh:mi:ss:mmm(24小时制)  

### SQL Server 时间日期格式处理 在 SQL Server 中,可以利用多种函数来设置和转换时间日期格式。对于日期时间类型的显示格式化操作,`CONVERT` 函数是一个常用的选择[^2]。 #### 使用 `CONVERT` 函数进行日期格式化 通过指定不同的样式参数,`CONVERT` 可以实现多样化的日期输出格式: ```sql -- 将当前日期按照美国标准短日期格式 (mm/dd/yyyy) 输出 SELECT CONVERT(varchar, GETDATE(), 1); ``` 除了上述提到的风格外,还有其他许多预定义的格式可供选用。例如: | 样式 | 描述 | | --- | --- | | 101 | mm/dd/yyyy (美式)| | 103 | dd/mm/yyyy (英式/法式)| 为了更灵活地控制日期字符串的表现形式,还可以考虑使用 `FORMAT` 函数(适用于 SQL Server 2012 及以上版本),它允许基于 .NET Framework 的自定义模式串来进行格式化。 #### 自定义日期格式示例 当需要更加精确定制日期表示方式,可采用如下语法结构: ```sql -- 定制日期格式为 "yyyy-MM-dd HH:mm:ss" SELECT FORMAT(GETDATE(), N'yyyy-MM-dd HH\:mm\:ss'); ``` 这种方法提供了极大的灵活性,能够满足各种特定需求下的日期展示要求。 #### 处理时间和数值之间的相互转换 针对将日期时间数据转化为数字的需求,可以通过计算与 Unix 纪元起点(即1970年1月1日午夜UTC)之间的时间差来完成;反之亦然,则需加上相应的偏移量并构建新的 datetime 值[^1]。 ```sql -- 获取距1970-01-01 UTC零点经过了多少毫秒 SELECT DATEDIFF_BIG(MILLISECOND, '1970-01-01', SYSDATETIMEOFFSET()) AS MillisecondsSinceEpoch; ``` 注意这里使用了 `DATEDIFF_BIG` 来支持更大的范围,因为普通的 `DATEDIFF` 在某些情况下可能会溢出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值