SQL日期格式,转自will哥
我之前一直認為 SQL Server 針對日期處理的函數不夠多(如果跟 MySQL 比較),尤其是處理日期欄位轉字串的時候,常常因為要輸出特定的格式而懊惱不已,常常一不小心就寫了一長串,很不易閱讀。
例如說初學者可能為了輸入一個 "2008-2-27" 的格式會這樣寫:
[code:tsql]
select convert(varchar(4),Year(getdate())) + '-' + convert(varchar(2), month(getdate()))+ '-' + convert(varchar(2), day(getdate()))
[/code]
但如過客戶要求 "2008-02-27" 這種格式呢?!我看會寫瘋掉了,你可能會這樣寫:
[code:tsql]
select convert(varchar(4),Year(getdate())) + '-' + CASE month(getdate()) WHEN 1 THEN '0' + convert(varchar(2), month(getdate())) WHEN 2 THEN '0' + convert(varchar(2), month(getdate())) WHEN 3 THEN '0' + convert(varchar(2), month(getdate())) WHEN 4 THEN '0' + convert(varchar(2), month(getdate())) WHEN 5 THEN '0' + convert(varchar(2), month(getdate())) WHEN 6 THEN '0' + convert(varchar(2), month(getdate())) WHEN 7 THEN '0' + convert(varchar(2), month(getdate())) WHEN 8 THEN '0' + convert(varchar(2), month(getdate())) WHEN 9 THEN '0' + convert(varchar(2), month(getdate())) ELSE convert(varchar(2), month(getdate())) END + '-' + CASE day(getdate()) WHEN 1 THEN '0' + convert(varchar(2), day(getdate())) WHEN 2 THEN '0' + convert(varchar(2), day(getdate())) WHEN 3 THEN '0' + convert(varchar(2), day(getdate())) WHEN 4 THEN '0' + convert(varchar(2), day(getdate())) WHEN 5 THEN '0' + convert(varchar(2), day(getdate())) WHEN 6 THEN '0' + convert(varchar(2), day(getdate())) WHEN 7 THEN '0' + convert(varchar(2), day(getdate())) WHEN 8 THEN '0' + convert(varchar(2), day(getdate())) WHEN 9 THEN '0' + convert(varchar(2), day(getdate())) ELSE convert(varchar(2), day(getdate())) END
[/code]
別笑!我真的看過有人這樣寫!呵呵~
其實 SQL Server 早就有個 CONVERT 函數可以幫我們做這件事!如果你要輸出 2008-02-27 這種日期格式的字串,可以這樣寫:
[code:tsql]
SELECT CONVERT(char(10), getdate(), 120)
[/code]
是不是短很多呢? ^__^
底下列出一些我常用的語法:
- 輸出格式:2008-02-27 00:25:13
SELECT CONVERT(char(19), getdate(), 120) - 輸出格式:2008-02-27
SELECT CONVERT(char(10), getdate(), 20)
- 輸出格式:2008.02.27
SELECT CONVERT(char(10), getdate(), 102) - 輸出格式:08.02.27
SELECT CONVERT(char(8), getdate(), 2) - 輸出格式:2008/02/27
SELECT CONVERT(char(10), getdate(), 111) - 輸出格式:08/02/27
SELECT CONVERT(char(8), getdate(), 11) - 輸出格式:20080227
SELECT CONVERT(char(8), getdate(), 112) - 輸出格式:080227
SELECT CONVERT(char(6), getdate(), 12)
想查詢完整的列表與說明可以到 MSDN 的 Transact-SQL Reference 去查詢 CAST and CONVERT 的詳細說明。
相關連結
SQL日期格式,转自will哥的更多相关文章
- SQL显示某月全部日期明细以及SQL日期格式
SQL显示某月全部日期明细<存储过程> 方法一: declare @date datetime declare @end datetime ,getdate()) ,@date) crea ...
- sql 日期格式汇总
SQLserver中用convert函数转换日期格式2008-01-15 15:51SQLserver中用convert函数转换日期格式 SQL Server中文版的默认的日期字段datetime格式 ...
- SQL日期格式
) :: ),'-',''),' ',''),':','') ) , ) ) , ) ) , ) ) , ) 其它不常用的日期格式转换方法: ) , ) ) , ) ) , ) ) , ) ) , ) ...
- sql日期格式小应用 记录一下
比如这样的数据 20170317 要转成2017-03-17 单独一步做不到 两步思想 先转成日期格式 在进行格式化 select CONVERT(varchar(10),(CAST(CONVERT( ...
- sql日期格式处理
sql server中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 ...
- sql 日期格式输出 - 转
SELECT CONVERT(varchar(100), GETDATE(), 0) 05 9 2011 9:12AM SELECT CONVERT(varchar(100), GETDATE(), ...
- SQL日期格式转换
CONVERT(nvarchar(20), [Date],101) as 'Date' 10/20/2016 CONVERT(nvarchar(20), [Date],102) as 'Date ...
- SQL日期格式转换(经常用又经常忘记的东西)转载自http://www.cnblogs.com/wangyuelang0526/archive/2012/06/06/2538224.html
Select CONVERT(varchar(100), GETDATE(), 8):14:53:14Select CONVERT(varchar(100), GETDATE(), 9): 06 6 ...
- sql 日期格式
select CONVERT(varchar(10), getDate(),121) --不要时间2002-01-01 select CONVERT(varchar(10), getDate(),12 ...
随机推荐
- varnish 4.0.3 域名访问的小问题
1,若端口不是80 端口则匹配的时候必须加端口 if (req.http.host ~ "(?i)^var.test.aa:6081$") {set req.http.host = ...
- linux socket连接中 ERRNO错误
Connection refused:应该是连接的服务端没有启动或者连接端口错误,可以用如下代码测试 client端: #include <stdio.h> #include <sy ...
- Tornado实战项目(伪JD商城)
预备知识 在之前tornado商城项目中,在开始之前需要引入一些项目设计知识,如接口,抽象方法抽象类,组合,程序设计原则等,个人理解项目的合理设计可增加其灵活性, 降低数据之间的耦合性,提高稳定性,下 ...
- ACdream 1017 [分层图][网络流]
/* 大连热身C题 不要低头,不要放弃,不要气馁,不要慌张 题意: 给一个城市路线图,给定起点给定终点.有n个货物从起点运送到终点.城市的边是无向边. 每个货物每天如果通过某条路,那么这天这条路只能运 ...
- Gesture Recognizers与触摸事件分发[转]
一.Gesture Recognizers Gesture Recognizers是在iOS3.2引入的,可以用来识别手势.简化定制视图事件处理的对象.Gesture Recognizers的基类为U ...
- 3、NAT
<计算机网络(第5版)>P173 P182
- Flask-RESTful 快速入门
Flask-RESTful 快速入门 hello world from flask import Flask from flask_restful import Resource, Api app = ...
- linux ssh publickey登录
一.公钥认证的基本思想: 对信息的加密和解密采用不同的key,这对key分别称作private key和public key,其中,public key存放在目标服务器上,而private key为特 ...
- MVC中的@符号
1: @if (@Model.DepositList != null) { } 2: @if (@Model.DepositList != null) { foreach (Deposit_ViewM ...
- PAT - 测试 01-复杂度2 Maximum Subsequence Sum (25分)
1, N2N_2N2, ..., NKN_KNK }. A continuous subsequence is defined to be { NiN_iNi, Ni+1N_{i ...