加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQLSERVER格式化日期时间

发布时间:2020-12-12 13:46:06 所属栏目:MsSql教程 来源:网络整理
导读:执行下面格式化时间和日期的T-SQL脚本,在数据库查询分析器中示范了SQL Server中的大多数可用的时间数据格式。首先我们开始转换sql的一些可用的时间格式。 [sql] view plain copy SELECT ? convert ( varchar ,?getdate(),?100)? --?mon?dd?yyyy?hh:mmAM?(or?

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

[sql] view plain copy

在CODE上查看代码片

派生到我的代码片

  1. SELECT?convert(varchar,?getdate(),?100)?--?mon?dd?yyyy?hh:mmAM?(or?PM)??
  2. --?Oct?2?2008?11:01AM??
  3. SELECT?convert(varchar,?101)?--?mm/dd/yyyy?-?10/02/2008??
  4. SELECT?convert(varchar,?102)?--?yyyy.mm.dd?--?2008.10.02??
  5. SELECT?convert(varchar,?103)?--?dd/mm/yyyy??
  6. SELECT?convert(varchar,?104)?--?dd.mm.yyyy??
  7. SELECT?convert(varchar,?105)?--?dd-mm-yyyy??
  8. SELECT?convert(varchar,?106)?--?dd?mon?yyyy??
  9. SELECT?convert(varchar,?107)?--?mon?dd,?yyyy??
  10. SELECT?convert(varchar,?108)?--?hh:mm:ss??
  11. SELECT?convert(varchar,?109)?--?mon?dd?yyyy?hh:mm:ss:mmmAM?(or?PM)??
  12. --?Oct?2?2008?11:02:44:013AM??
  13. SELECT?convert(varchar,?110)?--?mm-dd-yyyy??
  14. SELECT?convert(varchar,?111)?--?yyyy/mm/dd??
  15. SELECT?convert(varchar,?112)?--?yyyymmdd??
  16. SELECT?convert(varchar,?113)?--?dd?mon?yyyy?hh:mm:ss:mmm??
  17. --?02?Oct?2008?11:02:07:577??
  18. SELECT?convert(varchar,?114)?--?hh:mm:ss:mmm(24h)??
  19. SELECT?convert(varchar,?120)?--?yyyy-mm-dd?hh:mm:ss(24h)??
  20. SELECT?convert(varchar,?121)?--?yyyy-mm-dd?hh:mm:ss.mmm??
  21. SELECT?convert(varchar,?126)?--?yyyy-mm-ddThh:mm:ss.mmm??
  22. --?2008-10-02T10:52:47.513??
  23. --?利用字符串函数创建不同的日期格式??
  24. SELECT?replace(convert(varchar,?111),?'/',?'?')?--?yyyy?mm?dd??
  25. SELECT?convert(varchar(7),?126)?--?yyyy-mm??
  26. SELECT?right(convert(varchar,?106),?8)?--?mon?yyyy??
  27. go??
  28. --通用的日期转换函数CREATE?FUNCTION?dbo.fnFormatDate?(@Datetime?DATETIME,?@FormatMask?VARCHAR(32))RETURNS?VARCHAR(32)AS??
  29. BEGIN??
  30. DECLARE?@StringDate?VARCHAR(32)??
  31. SET?@StringDate?=?@FormatMask??
  32. IF?(CHARINDEX?('YYYY',@StringDate)?>?0)??
  33. SET?@StringDate?=?REPLACE(@StringDate,?'YYYY',DATENAME(YY,?@Datetime))??
  34. IF?(CHARINDEX?('YY',?'YY',RIGHT(DATENAME(YY,?@Datetime),2))??
  35. IF?(CHARINDEX?('Month',?'Month',DATENAME(MM,?@Datetime))??
  36. IF?(CHARINDEX?('MON',@StringDate?COLLATE?SQL_Latin1_General_CP1_CS_AS)>0)??
  37. SET?@StringDate?=?REPLACE(@StringDate,?'MON',LEFT(UPPER(DATENAME(MM,?@Datetime)),3))??
  38. IF?(CHARINDEX?('Mon',?'Mon',LEFT(DATENAME(MM,3))??
  39. IF?(CHARINDEX?('MM',?'MM',RIGHT('0'+CONVERT(VARCHAR,DATEPART(MM,2))??
  40. IF?(CHARINDEX?('M',?'M',CONVERT(VARCHAR,?@Datetime)))??
  41. IF?(CHARINDEX?('DD',?'DD',right('0'+DATENAME(DD,2))??
  42. IF?(CHARINDEX?('D',?'D',DATENAME(DD,?@Datetime))??
  43. RETURN?@StringDate??
  44. END??
  45. GO??



以前每次格式化日期都要通过字符串转换函数是转换,比较麻烦,像这样写成函数调用起来就方便多了:
示例:
SELECT dbo.fnFormatDate (getdate(),'MM/DD/YYYY')? --03/06/2011

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读