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



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



1、获取当前日期利用 convert 来转换成我们须要的datetime格式. 貌似
oracle的 PLSQl中不能直接用呀。。

。仅仅适应与 sql server 之类的数据库???

select CONVERT(varchar(12) , getdate(), 112 )    类似oracle 中的 to_char(xsdate,'yyyymm')

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

SELECTREPLACE(CONVERT(varchar(10),@dateTime,120),N'-0','-')



--长日期格式:yyyy年mm月dd日 

SELECTSTUFF(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

SELECTCONVERT(char(11),@dateTime,120)+CONVERT(char(12),@dateTime,114)



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

2、substring ,该函数用来求一个字符串的字串,该函数的使用频率非常高。

也不是oracle中的使用方法

演示样例字符串:”2011-11-17”

在Oracle中求字符串的函数为:substr

The syntax for the substr function is:

substr( string, start_position, [ length ] )

string:源字符串

start_position:子串第一个字符在源字符串中的起始位置

length:子串长度

測试结果:

1.

substr('2011-11-17',0,7)

2011-11

2.

substr('2011-11-17',1,7)

2011-11

3.

substr('2011-11-17',1,10)

2011-11-17

4.

substr('2011-11-17',1,11)

2011-11-17

5.

substr('2011-11-17',-1,7)

7

6.

substr('2011-11-17',-8,8)

11-11-17

7.

substr('2011-11-17',-10,7)

2011-11

8.

substr('2011-11-17',-11,7)

null

9.

substr('2011-11-17',-11)

null

10.

substr('2011-11-17',-1)

7

11.

substr('2011-11-17',6)

11-17

12.

substr('2011-11-17',11)

null

13.

substr (‘2011-11-17’,1,null)

null

14.

substr (‘2011-11-17’,null,1)

null

15.

substr (‘2011-11-17’,null,null)

null

16.

substr ('2011-11-17',1,0)

null

17.

substr ('2011-11-17',1,-1)

null

18.

substr ('2011-11-17',11,11)

null

Oracle中规定:

1)  start_position==0时。子串的起始位置为1,即从第一个字符開始;

2)  start_position<0时。字串的起始位置从字符串尾部開始后推。

3)  length參数能够缺省



3、日期推算处理

oracle 时间函数(sysdate) to_char才是王道:oracle

1):取得当前日期是本月的第几周

SQL> select to_char(sysdate,'YYYYMMDD W HH24:MI:SS') from dual;

TO_CHAR(SYSDATE,'YY

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

20030327 4 18:16:09

SQL> select to_char(sysdate,'W') from dual;

T

-

4

2:取得当前日期是一个星期中的第几天,注意星期日是第一天

SQL> select sysdate,to_char(sysdate,'D') from dual;

SYSDATE T

--------- -

27-MAR-03 5

  类似:

select to_char(sysdate,'yyyy') from dual; --年

select to_char(sysdate,'Q' from dual; --季

select to_char(sysdate,'mm') from dual; --月

select to_char(sysdate,'dd') from dual; --日

ddd 年中的第几天

WW 年中的第几个星期

W 该月中第几个星期

D 周中的星期几

hh 小时(12)

hh24 小时(24)

Mi 分

ss 秒

3:取当前日期是星期几中文显示:

SQL> select to_char(sysdate,'day') from dual;

TO_CHAR(SYSDATE,'DAY')

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

星期四

4:假设一个表在一个date类型的字段上面建立了索引,怎样使用

alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'

5: 得到当前的日期

select sysdate from dual;

6: 得到当天凌晨0点0分0秒的日期

select trunc(sysdate) from dual;

-- 得到这天的最后一秒

select trunc(sysdate) + 0.99999 from dual;

-- 得到小时的详细数值

select trunc(sysdate) + 1/24 from dual;

select trunc(sysdate) + 7/24 from dual;

7.得到明天凌晨0点0分0秒的日期

select trunc(sysdate+1) from dual;

select trunc(sysdate)+1 from dual;

8: 本月一日的日期

select trunc(sysdate,'mm') from dual;

9:得到下月一日的日期

select trunc(add_months(sysdate,1),'mm') from dual;

10:返回当前月的最后一天?

select last_day(sysdate) from dual;

select last_day(trunc(sysdate)) from dual;

select trunc(last_day(sysdate)) from dual;

select trunc(add_months(sysdate,1),'mm') - 1 from dual;

11: 得到一年的每一天

select trunc(sysdate,'yyyy')+ rn -1 date0

from

(select rownum rn from all_objects

where rownum<366);

12:今天是今年的第N天

SELECT TO_CHAR(SYSDATE,'DDD') FROM DUAL;

13:怎样在给现有的日期加上2年

select add_months(sysdate,24) from dual;

14:推断某一日子所在年分是否为润年

select decode(to_char(last_day(trunc(sysdate,'y')+31),'dd'),'29','闰年','平年') from dual;

15:推断两年后是否为润年

select decode(to_char(last_day(trunc(add_months(sysdate,24),'y')+31),'dd'),'29','闰年','平年') from dual;

16):得到日期的季度 

    select ceil(to_number(to_char(sysdate,'mm'))/3) from dual;

    select to_char(sysdate, 'Q') from dual;

四)其余时间处理方法:

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. 月的第一天

SELECTCONVERT(datetime,CONVERT(char(8),@dt,120)+'1')

--B. 月的最后一天

SELECTDATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,@dt),120)+'1')

--C. 月的最后一天(easy使用的错误方法)

SELECT DATEADD(Month,1,DATEADD(Day,-DAY(@dt),@dt))

--4.指定日期所在周的随意一天

SELECTDATEADD(Day,@number-DATEPART(Weekday,@dt),@dt)

--5.指定日期所在周的随意星期几

--A. 星期天做为一周的第1天

SELECTDATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt)

--B. 星期一做为一周的第1天

SELECTDATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)

数据库中substring的用法 CONVERT(varchar(12) , getdate(), 112 )的更多相关文章

  1. 数据库中substring的使用方法 CONVERT(varchar(12) , getdate(), 112 )

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

  2. CONVERT(varchar(10), getdate(), 120 )中数字参数用法

    这是一个mssql数据库的函数,Convert函数的作用,是进行数据类型的转换.而您所问的这个convert(char(20),openDate,120)则是对日期字段,进行格式化转换成字符格式的函数 ...

  3. C#中substring ()的用法

    C#中substring ()的用法:http://www.cnblogs.com/bluespace/archive/2007/12/11/782336.html

  4. js中substring/substr和C#中Substring的用法

    一:在js中截取字符串的方法有两个:substring和substr 1.方法: substring(int stringIndex,[int endIndex]) 截取从索引为stringIndex ...

  5. sql server数据库中char、nchar、varchar、nvarchar的选择

    在数据库中,字符型的数据是最多的,可以占到整个数据库的80%以上.为此正确处理字符型的数据,对于提高数据库的性能有很大的作用. 在字符型数据中,用的最多的就是Char与Varchar两种类型.前面的是 ...

  6. 带你了解数据库中JOIN的用法

    前言 欢迎关注公众号:Coder编程 获取最新原创技术文章和相关免费学习资料,随时随地学习技术知识! 本章主要介绍数据库中Join的的用法,也是我们在使用数据库时非常基础的一个知识点.本次会介绍数据库 ...

  7. 【转】Oracle数据库中Sequence的用法

    在Oracle数据库中,sequence等同于序列号,每次取的时候sequence会自动增加,一般会作用于需要按序列号排序的地方. 1.Create Sequence (注释:你需要有CREATE S ...

  8. 关于数据库中datareader的用法

    1.C#中提供的DataReader可以从数据库中每次提取一条数据. using System; using System.Collections.Generic; using System.Comp ...

  9. sql server中substring的用法

    SQL 中的 substring 函数是用来截取一个栏位资料中的其中一部分. 例如,我们需要将字符串'abdcsef'中的'abd'给提取出来,则可用substring 来实现: ,) 结果: 'ab ...

随机推荐

  1. yum---rpm软件包管理器

    yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性 ...

  2. 【习题 8-8 UVA - 1612】Guess

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] double千万不要用==判断相等... 而且两个保留2位有效数字的数字x,y 判断它们相等应该这样. int temp1 = ro ...

  3. 谈谈Spine动画在产品中的应用

    笔者介绍:姜雪伟,IT公司技术合伙人.IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D ...

  4. 一个简单RPC框架是怎样炼成的(II)——制定RPC消息

    开局篇我们说了,RPC框架的四个核心内容 RPC数据的传输. RPC消息 协议 RPC服务注冊 RPC消息处理 以下,我们先看一个普通的过程调用 class Client(object): def _ ...

  5. *android抓包工具——fiddler抓包分析api接口

    本文地址:http://blog.csdn.net/u011733020 首先,写这个仅仅是为了学习.不是要做什么违法的事情,假设有问题,有关部门 请联系我,立刻删除. 不要查我水表. 正题:这里介绍 ...

  6. 【Android】利用安卓的数据接口、多媒体处理编写内存卡Mp3播放器app

    通过调用安卓的MediaPlayer能够直接完毕Mp3等主流音频的播放,同一时候利用ContentResolver与Cursor能够直接读取安卓内在数据库的信息.直接获取当前sdcard中全部音频的列 ...

  7. Android学习笔记进阶16之BitmapShader

    <1>简介 具体的看一下博文:Android学习笔记进阶15之Shader渲染 public   BitmapShader(Bitmap bitmap,Shader.TileMode ti ...

  8. iPad之Linux平台实践

    updata.... 本文出自 "李晨光原创技术博客" 博客,谢绝转载!

  9. BZOJ2402: 陶陶的难题II(树链剖分,0/1分数规划,斜率优化Dp)

    Description Input 第一行包含一个正整数N,表示树中结点的个数.第二行包含N个正实数,第i个数表示xi (1<=xi<=10^5).第三行包含N个正实数,第i个数表示yi ...

  10. vue踩坑记-在项目中安装依赖模块npm install报错

    在维护别人的项目的时候,在项目文件夹中安装npm install模块的时候,报错如下: npm ERR! path D:\ShopApp\node_modules\fsevents\node_modu ...