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 ...
随机推荐
- Nginx图片剪裁模块探究
http://nginx.org/en/docs/http/ngx_http_image_filter_module.html http://cwtea.blog.51cto.com/4500217/ ...
- ios项目上传svn丢失*.a文件
Win TortoiseSVN:鼠标右键-TortoiseSVN-Settings-General-Subversion-Golobal ignore pattern Win Subversion:编 ...
- [Fraud] China UnionPay defrauded in Macau money laundering scandal
Source: http://www.wantchinatimes.com/news-subclass-cnt.aspx?id=20140510000005&cid=1103 China Un ...
- windows环境PhpStorm中简单使用PHP_CodeSniffer规范php代码
为什么使用PHP_CodeSniffer 一个开发团队统一的编码风格,有助于他人对代码的理解和维护,对于大项目来说尤其重要. PHP_CodeSniffer是PEAR中的一个用PHP5写的用来检查嗅探 ...
- Druid 基础使用-操作篇(Imply )
一.Imply Druid 原生的配置较麻烦,在上一篇单机版安装中有所涉及 Imply 基于Druid 进行了一些组件的开发,提供开源社区版本和商业版,简化了部署,开发了一些应用.https:// ...
- vtk保存图像
vtkWindowToImageFilter * wif = vtkWindowToImageFilter::New(); vtkBMPWriter *bmpw = vtkBMPWriter::New ...
- chrome启用 NPAPI [转]
需前往 chrome://flags/#enable-npapi 手动开启 原帖:http://tieba.baidu.com/p/3737775413 第1步:开启NPAPI, 就是置顶帖里说的 我 ...
- MYSQL中UNIX时间戳与日期的转换
select FROM_UNIXTIME(1464973385.641,'%Y-%m-%d %H:%i:%s'); select UNIX_TIMESTAMP('2016-06-04 01:03:05 ...
- C#调用 ICSharpCode.SharpZipLib.Zip 实现解压缩功能公用类
最近想用个解压缩功能 从网上找了找 加自己修改,个人感觉还是比较好用的,直接上代码如下 using System; using System.Linq; using System.IO; using ...
- ReferenceError: $ is not defined (绝对路径和相对路径)
今天使用JQuery时,进入js文件后一直达不到想要的效果,在firebug上调试后发现报错提示"ReferenceError: $ is not defined",显然,这是JQ ...