SQL时间格式化

1 取值后格式化
{0:d}小型:如2005-5-6
{0:D}大型:如2005年5月6日
{0:f}完整型

2 当前时间获取 
DateTime.Now.ToShortDateString

3 取值中格式化
SQL Server里面可能经常会用到的日期格式转换方法:
sql server使用convert来取得datetime日期数据,以下实例包含各种日期格式的转换
语句及查询结果:
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
Select CONVERT(varchar(100), GETDATE(), 12): 060516
Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
Sel1 取值后格式化
{0:d}小型:如2005-5-6
{0:D}大型:如2005年5月6日
{0:f}完整型

2 当前时间获取 
DateTime.Now.ToShortDateString

3 取值中格式化
SQL Server里面可能经常会用到的日期格式转换方法:
sql server使用convert来取得datetime日期数据,以下实例包含各种日期格式的转换
语句及查询结果:
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
Select CONVERT(varchar(100), GETDATE(), 12): 060516
Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112): 20060516
Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM
ect CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112): 20060516
Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM

### SQL 日期格式化的常用方法 在 SQL 中,日期格式化是一个常见需求,不同数据库管理系统 (DBMS) 提供了各自的函数支持此功能。以下是几种主流 DBMS 的日期格式化方法及其示例。 #### MySQL 中的 `DATE_FORMAT` 函数 MySQL 使用 `DATE_FORMAT` 函数来进行日期格式化操作。该函数允许通过指定模式字符串来自定义输出格式。例如: ```sql -- 格式化为年月日时分秒:yyyy-MM-dd HH:mm:ss SELECT DATE_FORMAT(add_time, '%Y-%m-%d %H:%i:%S') AS formatted_add_time FROM sys_user; -- 条件查询中的日期格式化,仅匹配年月日:yyyy-MM-dd SELECT * FROM sys_user WHERE DATE_FORMAT(add_time, '%Y-%m-%d') = DATE_FORMAT('2023-10-18', '%Y-%m-%d'); ``` 上述代码展示了如何利用 `DATE_FORMAT` 对字段进行格式化以及作为查询条件的一部分[^1]。 #### Microsoft SQL Server 中的 `FORMAT` 函数 Microsoft SQL Server 支持使用 `FORMAT` 函数来处理日期和其他类型的值格式化。它提供了灵活的方式以满足多样化的显示需求。例如: ```sql -- 格式化当前时间为 yyyy-MM-dd 形式的日期 SELECT FORMAT(GETDATE(), 'yyyy-MM-dd') AS FormattedDate; -- 格式化时间部分为 hh:mm:ss AM/PM 表达形式 SELECT FORMAT(GETDATE(), 'hh:mm:ss tt') AS FormattedTime; ``` 这些例子说明了 `FORMAT` 如何用于生成特定样式的日期和时间表示[^2]。 #### Oracle 数据库中的 `TO_CHAR` 函数 Oracle 数据库采用 `TO_CHAR` 函数完成类似的日期转换任务。下面的例子演示了它的应用方式: ```sql -- 将 SYSDATE 转换为 YYYY-MM-DD HH24:MI:SS 格式 SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS formatted_date FROM dual; ``` 这里需要注意的是,在 Oracle 中,“HH24”代表小时制而非标准十二小时制下的 “HH”。 #### PostgreSQLSQLite 的解决方案 对于其他一些流行的 RDBMS 平台来说,它们也各自具备独特的解决办法。比如PostgreSQL 可能会依赖于其内置的时间戳类型配合提取(extract()) 或者to_char() 方法;而SQLite 则可能更多地依靠strftime() 实现相似目的: ##### PostgreSQL 示例: ```sql -- 在 PostgreSQL 下执行相同逻辑 SELECT to_char(current_timestamp, 'YYYY-MM-DD HH24:MI:SS') as current_formatted_datetime; ``` ##### SQLite 示例: ```sql -- 在 SQLite 上实现同等效果 SELECT strftime('%Y-%m-%d %H:%M:%S', datetime('now')) AS now_formatted; ``` 以上分别介绍了多个平台下达成一致目标的不同途径][^[^34]。 ### 总结 每种关系型数据库都有自己的语法特点去应对日期格式的需求。理解并掌握所使用的具体系统的特性是非常重要的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值