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 ...
随机推荐
- dicom转换软件的一点头绪
想用c#写一个由dicom格式转化为jpeg或者其他格式的文件 找到了这个类 fo-dicom类
- OAF_开发系列21_实现OAF事物控制TransactionUnitHelper(案例)
20150716 Created By BaoXinjian
- innodb的锁
观察innodb的锁时间,需要关注: mysqladmin extended-status -r -i 1 -uroot | grep "Innodb_row_lock_time" ...
- 移动web开发,12个触摸及多点触摸事件常用Js插件
如今移动互联网已经占据了主流地位,越来越多的开发者开始从桌面转向移动平台.与桌面开发不同的是,在移动领域中,不同的操作系统.大量不同屏幕尺寸的移动设备.触摸手势操作等,这都给开发者带来了一定的难度和挑 ...
- IBM Power PC安装sysbench 执行mysql基准测试 --- sysbench安装
第一步:下载Sysbench http://dev.mysql.com/downloads/benchmarks.html 第二步:解压sysbench 第三步:执行安装步骤 1. ./autogen ...
- 再看 AspriseOCR - OCR应用开发 -20151124
再看 AspriseOCR - OCR应用开发 我写这个博文时间为 2015/11/24日,注意时间因为,网上很多文章时间上很久远,有的已经不能参考了 很多人面对从图片中识别文字或者数字0~9 A~ ...
- FreeBSD从零开始---安装后配置(一)
一.安装后配置 上次我们说到FreeBSD的安装,这次我们说FreeBSD安装后的配置和简单优化方法. 安装完BSD只是服务器提供服务这条万里长征路的开始,还需要一些基本的设定和优化.不过实际 ...
- LibreOffice 打开中文乱码
From: http://hi.baidu.com/designhouse/item/746130c01f98a42dee4665de 1:文件->打开 2:文件类型:已编码文本
- iisnode托管node
1.官方下载iisnode https://github.com/tjanczuk/iisnode 2.安装完成后在IIS中可见
- 把CMSampleBufferRef转成Data
CMSampleBufferRef ref=[output copyNextSampleBuffer]; NSLog(@"%@",ref); if(ref==NULL) break ...