zoukankan      html  css  js  c++  java
  • Sql server2005中如何格式化时间日期

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

    SELECT convert(varchar, getdate(), 100) -- mon dd yyyy hh:mmAM (or PM)
    -- Oct 2 2008 11:01AM 
    SELECT convert(varchar, getdate(), 101) -- mm/dd/yyyy - 10/02/2008 
    SELECT convert(varchar, getdate(), 102) -- yyyy.mm.dd -- 2008.10.02 
    SELECT convert(varchar, getdate(), 103) -- dd/mm/yyyy
    SELECT convert(varchar, getdate(), 104) -- dd.mm.yyyy
    SELECT convert(varchar, getdate(), 105) -- dd-mm-yyyy
    SELECT convert(varchar, getdate(), 106) -- dd mon yyyy
    SELECT convert(varchar, getdate(), 107) -- mon dd, yyyy
    SELECT convert(varchar, getdate(), 108) -- hh:mm:ss
    SELECT convert(varchar, getdate(), 109) -- mon dd yyyy hh:mm:ss:mmmAM (or PM)
    -- Oct 2 2008 11:02:44:013AM 
    SELECT convert(varchar, getdate(), 110) -- mm-dd-yyyy
    SELECT convert(varchar, getdate(), 111) -- yyyy/mm/dd
    SELECT convert(varchar, getdate(), 112) -- yyyymmdd
    SELECT convert(varchar, getdate(), 113) -- dd mon yyyy hh:mm:ss:mmm
    -- 02 Oct 2008 11:02:07:577 
    SELECT convert(varchar, getdate(), 114) -- hh:mm:ss:mmm(24h)
    SELECT convert(varchar, getdate(), 120) -- yyyy-mm-dd hh:mm:ss(24h)
    SELECT convert(varchar, getdate(), 121) -- yyyy-mm-dd hh:mm:ss.mmm
    SELECT convert(varchar, getdate(), 126) -- yyyy-mm-ddThh:mm:ss.mmm
    -- 2008-10-02T10:52:47.513
    -- 利用字符串函数创建不同的日期格式
    SELECT replace(convert(varchar, getdate(), 111), '/', ' ') -- yyyy mm dd
    SELECT convert(varchar(7), getdate(), 126) -- yyyy-mm
    SELECT right(convert(varchar, getdate(), 106), 8) -- mon yyyy
    go
    




    --通用的日期转换函数
    CREATE FUNCTION dbo.fnFormatDate (@Datetime DATETIME, @FormatMask VARCHAR(32))
    RETURNS VARCHAR(32)
    AS BEGIN DECLARE @StringDate VARCHAR(32)
    SET @StringDate = @FormatMask
    IF (CHARINDEX ('YYYY',@StringDate) > 0)
    SET @StringDate = REPLACE(@StringDate, 'YYYY',DATENAME(YY, @Datetime))
    IF (CHARINDEX ('YY',@StringDate) > 0)
    SET @StringDate = REPLACE(@StringDate, 'YY',RIGHT(DATENAME(YY, @Datetime),2))
    IF (CHARINDEX ('Month',@StringDate) > 0)
    SET @StringDate = REPLACE(@StringDate, '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',@StringDate) > 0)
    SET @StringDate = REPLACE(@StringDate, 'Mon',LEFT(DATENAME(MM, @Datetime),3))
    IF (CHARINDEX ('MM',@StringDate) > 0)
    SET @StringDate = REPLACE(@StringDate, 'MM',RIGHT('0'+CONVERT(VARCHAR,DATEPART(MM, @Datetime)),2))
    IF (CHARINDEX ('M',@StringDate) > 0)
    SET @StringDate = REPLACE(@StringDate, 'M',CONVERT(VARCHAR,DATEPART(MM, @Datetime)))
    IF (CHARINDEX ('DD',@StringDate) > 0)
    SET @StringDate = REPLACE(@StringDate, 'DD',right('0'+DATENAME(DD, @Datetime),2))
    IF (CHARINDEX ('D',@StringDate) > 0)
    SET @StringDate = REPLACE(@StringDate, 'D',DATENAME(DD, @Datetime))
    RETURN @StringDate
    END GO
     
    以前每次格式化日期都要通过字符串转换函数是转换,比较麻烦,像这样写成函数调用起来就方便多了:
    示例:
    SELECT dbo.fnFormatDate (getdate(), 'MM/DD/YYYY')  --03/06/2011

    参考资料:http://anubhavg.wordpress.com/2009/06/11/how-to-format-datetime-date-in-sql-server-2005/

    版权声明:允许转载,转载时请务必以超链接形式 标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。
    http://www.cnblogs.com/huazai/archive/2011/03/06/1971967.html
  • 相关阅读:
    智能推荐算法演变及学习笔记(三):CTR预估模型综述
    从中国农业银行“雅典娜杯”数据挖掘大赛看金融行业数据分析与建模方法
    智能推荐算法演变及学习笔记(二):基于图模型的智能推荐(含知识图谱/图神经网络)
    (设计模式专题3)模板方法模式
    (设计模式专题2)策略模式
    (设计模式专题1)为什么要使用设计模式?
    关于macOS上常用操作命令(持续更新)
    记录下关于RabbitMQ常用知识点(持续更新)
    EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.
    SpringCloud教程二:Ribbon(Finchley版)
  • 原文地址:https://www.cnblogs.com/Komici/p/1971967.html
Copyright © 2011-2022 走看看