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 ...
随机推荐
- (C++) System return error codes.
https://msdn.microsoft.com/en-us/library/windows/desktop/ms681385(v=vs.85).aspx
- delphi怎么创建一个文本文件
//创建一个文本文件 procedure TFrmAutomatismBalance.FlatButton3Click(Sender: TObject); var TF:TextFile; Path ...
- Gson--Gson解析=等号出现乱码?
GSON使用笔记(1) -- 序列化时排除字段的几种方式 --3,关于Gson解析时候特殊符号,被转义的问题,如'单引号? //Creating the JSON object, and gettin ...
- windows下CMake使用图文手册 Part 1
维基百科介绍“CMake是个开源的跨平台自动化建构系统,它用配置文件控制建构过程(build process)的方式和Unix的Make相似,只是CMake的配置文件取名为CMakeLists.txt ...
- c++ 使用shell命令
#include <iostream> #include <stdio.h> #include <vector> #include <unistd.h> ...
- 2、NASA HS3(Hurricane AND Server Storm Sentinel)
国内访问不到,但是通过ppt可以看到,数据支撑做的很到位,前台展示很炫. 气象领域WebGL应用最好案例的当之无愧啊.这篇全部贴图了. 来自为知笔记(Wiz)
- HBase自动分区
HBase扩展和负载均衡的基本单位是Region.Region从本质上说是行的集合.当Region的大小达到一定的阈值,该Region会自动分裂(split),当然也可能是合并(merge),合并可以 ...
- Linux 脚本命令结果输出到文件
From: http://bbs.chinaunix.net/thread-1997207-1-1.html sh test.sh | tee log.txt
- 在 Arch Linux 玩百度 Flash 战曲游戏乱码
#!/bin/sh #From: http://hi.baidu.com/imtinge/item/3516761d314481542b3e22f0 #Info: CJK Unicode font M ...
- sql中limit使用方法
此处以mysql为例,但是我相信物以变通在oracle上也一定适用 下面是几种limit的方法:原则看看下面几个例子应该就懂了 在数据库中很多地方都会用到,比如当你数据库查询记录有几万.几十万时使用l ...