执行下面格式化时间和日期的T-SQL脚本,在数据库查询分析器中示范了SQL Server中的大多数可用的时间数据格式。首先我们开始转换sql的一些可用的时间格式。
[sql]
view plain
copy


- SELECT?convert(varchar,?getdate(),?100)???
- ??
- SELECT?convert(varchar,?101)???
- SELECT?convert(varchar,?102)???
- SELECT?convert(varchar,?103)???
- SELECT?convert(varchar,?104)???
- SELECT?convert(varchar,?105)???
- SELECT?convert(varchar,?106)???
- SELECT?convert(varchar,?107)???
- SELECT?convert(varchar,?108)???
- SELECT?convert(varchar,?109)???
- ??
- SELECT?convert(varchar,?110)???
- SELECT?convert(varchar,?111)???
- SELECT?convert(varchar,?112)???
- SELECT?convert(varchar,?113)???
- ??
- SELECT?convert(varchar,?114)???
- SELECT?convert(varchar,?120)???
- SELECT?convert(varchar,?121)???
- SELECT?convert(varchar,?126)???
- ??
- ??
- SELECT?replace(convert(varchar,?111),?'/',?'?')???
- SELECT?convert(varchar(7),?126)???
- SELECT?right(convert(varchar,?106),?8)???
- go??
- ??
- BEGIN??
- DECLARE?@StringDate?VARCHAR(32)??
- SET?@StringDate?=?@FormatMask??
- IF?(CHARINDEX?('YYYY',@StringDate)?>?0)??
- SET?@StringDate?=?REPLACE(@StringDate,?'YYYY',DATENAME(YY,?@Datetime))??
- IF?(CHARINDEX?('YY',?'YY',RIGHT(DATENAME(YY,?@Datetime),2))??
- IF?(CHARINDEX?('Month',?'Month',DATENAME(MM,?@Datetime))??
- IF?(CHARINDEX?('MON',@StringDate?COLLATE?SQL_Latin1_General_CP1_CS_AS)>0)??
- SET?@StringDate?=?REPLACE(@StringDate,?'MON',LEFT(UPPER(DATENAME(MM,?@Datetime)),3))??
- IF?(CHARINDEX?('Mon',?'Mon',LEFT(DATENAME(MM,3))??
- IF?(CHARINDEX?('MM',?'MM',RIGHT('0'+CONVERT(VARCHAR,DATEPART(MM,2))??
- IF?(CHARINDEX?('M',?'M',CONVERT(VARCHAR,?@Datetime)))??
- IF?(CHARINDEX?('DD',?'DD',right('0'+DATENAME(DD,2))??
- IF?(CHARINDEX?('D',?'D',DATENAME(DD,?@Datetime))??
- RETURN?@StringDate??
- END??
- GO??
以前每次格式化日期都要通过字符串转换函数是转换,比较麻烦,像这样写成函数调用起来就方便多了:
示例:
SELECT dbo.fnFormatDate (getdate(),'MM/DD/YYYY')? --03/06/2011
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|