zoukankan      html  css  js  c++  java
  • sql convert(varchar(10),getdate(),120)

    Sqlserver中经常 要操作一些时间类型的字段转换,我又不太记得住,所以搜集了以下的一些SqlserverConvert DateTime相关的资料发表在自己的小站里,方便自己以后要用的时候寻找,望对大家也有帮助.

    将sqlserver中table表的[datetime]字段值‘2007-11-07 16:41:35.033’ 改为‘2007-11-07 00:00:00‘去除了时分秒.[datetime]字段要为datetime类型的哦. UPDATE table SET [datetime]= Convert(char(11),[datetime],120)

    获取当前日期利用 convert 来转换成我们需要的datetime格式.
    select CONVERT(varchar(12) , getdate(), 112 )
    20040912
    ------------------------------------------------------------
    select CONVERT(varchar(12) , getdate(), 102 )
    2004.09.12
    ------------------------------------------------------------
    select CONVERT(varchar(12) , getdate(), 101 )
    09/12/2004
    ------------------------------------------------------------
    select CONVERT(varchar(12) , getdate(), 103 )
    12/09/2004
    ------------------------------------------------------------
    select CONVERT(varchar(12) , getdate(), 104 )
    12.09.2004
    ------------------------------------------------------------
    select CONVERT(varchar(12) , getdate(), 105 )
    12-09-2004
    ------------------------------------------------------------
    select CONVERT(varchar(12) , getdate(), 106 )
    12 09 2004
    ------------------------------------------------------------
    select CONVERT(varchar(12) , getdate(), 107 )
    09 12, 2004
    ------------------------------------------------------------
    select CONVERT(varchar(12) , getdate(), 108 )
    11:06:08
    ------------------------------------------------------------
    select CONVERT(varchar(12) , getdate(), 109 )
    09 12 2004 1
    ------------------------------------------------------------
    select CONVERT(varchar(12) , getdate(), 110 )
    09-12-2004
    ------------------------------------------------------------
    select CONVERT(varchar(12) , getdate(), 113 )
    12 09 2004 1
    ------------------------------------------------------------
    select CONVERT(varchar(12) , getdate(), 114 )
    11:06:08.177
    ------------------------------------------------------------

    declare @dateTime DateTime--定义一个datetime的变量
    set @dateTime=getdate(); --获取系统当前时间,并赋值给@dateTime字段

    --短日期格式:yyyy-m-d
    SELECT REPLACE(CONVERT(varchar(10),@dateTime,120),N'-0','-')

    --长日期格式:yyyy年mm月dd日
    SELECT STUFF(STUFF(CONVERT(char(8),@dateTime,112),5,0,N'年'),8,0,N'月')+N'日'

    --长日期格式:yyyy年m月d日
    SELECT DATENAME(Year,@dateTime)+N'年'+CAST(DATEPART(Month,@dateTime) AS varchar)+N'月'+DATENAME(Day,@dateTime)+N'日'

    --完整日期+时间格式:yyyy-mm-dd hh:mi:ss:mmm
    SELECT CONVERT(char(11),@dateTime,120)+CONVERT(char(12),@dateTime,114)

    ------------------------------------------------------------------------------------------------

    2、日期推算处理
    DECLARE @dt datetime
    SET @dt=GETDATE()
    DECLARE @number int
    SET @number=3
    --1.指定日期该年的第一天或最后一天
    --A. 年的第一天
    SELECT CONVERT(char(5),@dt,120)+'1-1'
    --B. 年的最后一天
    SELECT CONVERT(char(5),@dt,120)+'12-31'
    --2.指定日期所在季度的第一天或最后一天
    --A. 季度的第一天
    SELECT CONVERT(datetime,
    CONVERT(char(8),
    DATEADD(Month,
    DATEPART(Quarter,@dt)*3-Month(@dt)-2,
    @dt),
    120)+'1')
    --B. 季度的最后一天(CASE判断法)
    SELECT CONVERT(datetime,
    CONVERT(char(8),
    DATEADD(Month,
    DATEPART(Quarter,@dt)*3-Month(@dt),
    @dt),
    120)
    +CASE WHEN DATEPART(Quarter,@dt) in(1,4)
    THEN '31'ELSE '30' END)
    --C. 季度的最后一天(直接推算法)
    SELECT DATEADD(Day,-1,
    CONVERT(char(8),
    DATEADD(Month,
    1+DATEPART(Quarter,@dt)*3-Month(@dt),
    @dt),
    120)+'1')
    --3.指定日期所在月份的第一天或最后一天
    --A. 月的第一天
    SELECT CONVERT(datetime,CONVERT(char(8),@dt,120)+'1')
    --B. 月的最后一天
    SELECT DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,@dt),120)+'1')
    --C. 月的最后一天(容易使用的错误方法)
    SELECT DATEADD(Month,1,DATEADD(Day,-DAY(@dt),@dt))
    --4.指定日期所在周的任意一天
    SELECT DATEADD(Day,@number-DATEPART(Weekday,@dt),@dt)
    --5.指定日期所在周的任意星期几
    --A. 星期天做为一周的第1天
    SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt)
    --B. 星期一做为一周的第1天
    SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)

    转自:http://hi.baidu.com/fengfage/blog/item/1429fda1b9ec3d9b46106453.html
  • 相关阅读:
    【Elasticsearch 技术分享】—— ES 常用名词及结构
    【Elasticsearch 技术分享】—— Elasticsearch ?倒排索引?这都是什么?
    除了读写锁,JUC 下面还有个 StampedLock!还不过来了解一下么?
    小伙伴想写个 IDEA 插件么?这些 API 了解一下!
    部署Microsoft.ReportViewe
    关于TFS强制undo他人check out
    几段查看数据库表占用硬盘空间的tsql
    How to perform validation on sumbit only
    TFS 2012 Disable Multiple Check-out
    在Chrome Console中加载jQuery
  • 原文地址:https://www.cnblogs.com/andy_tigger/p/1909496.html
Copyright © 2011-2022 走看看