今天面试竟然连个查询SQL今天时间的关键字都忘了,我都服我自己了!好记性不如烂笔头,多记点吧!
一、Date函数
1、GetDate():当前日期和时间,语法:GetDate() 。 格式:2012-02-10 23:18:10.347 精确到毫秒
在建表时如需默认插入某时间为当前日期和时间,则如下:
create table testDate(ID int identity(1,1) not null primary key,OrderDate datetime default GetDate());s
2、DatePart():用于返回日期、时间的单独部分,DatePart(返回类型缩写,合法的日期表达式)。
格式:年—yyyy;月—mm;日—d;时—hh;分—mi;秒—ss;季度—q;周—w;
从testDate表中提取出OrderDate字段的年份,如下:select DatePart(yyyy,OrderDate) from testDate
3、DateAdd():对在日期和时间中减去指定的时间间隔,语法:DateAdd(返回类型缩写,添加的时间间隔数,合法的日期表达式)
将OrderDate字段减2天,如下:select DateAdd(m,-2,OrderDate) from testDate
4、DateDiff():获取两个时间段内的时间,语法:DateDiff(返回类型缩写,合法的日期表达式1,合法的日期表达式2)
获取两个时间之间的天数,如下:select DateDiff(d,"2012-2-12","2012-2-10"); 得到的结果是-2,后面时间减去前面时间。
5、Convert():是把日期时间函数转换为新数据类型的通用函数;转换成不同格式的日期时间函数;
格式:Convert(目标数据类型,含有需要转换的值,新的日期时间格式)
Style ID | Style 格式 |
---|---|
100 或者 0 | mon dd yyyy hh:miAM (或者 PM) |
101 | mm/dd/yy |
102 | yy.mm.dd |
103 | dd/mm/yy |
104 | dd.mm.yy |
105 | dd-mm-yy |
106 | dd mon yy |
107 | Mon dd, yy |
108 | hh:mm:ss |
109 或者 9 | mon dd yyyy hh:mi:ss:mmmAM(或者 PM) |
110 | mm-dd-yy |
111 | yy/mm/dd |
112 | yymmdd |
113 或者 13 | dd mon yyyy hh:mm:ss:mmm(24h) |
114 | hh:mi:ss:mmm(24h) |
120 或者 20 | yyyy-mm-dd hh:mi:ss(24h) |
121 或者 21 | yyyy-mm-dd hh:mi:ss.mmm(24h) |
126 | yyyy-mm-ddThh:mm:ss.mmm(没有空格) |
130 | dd mon yyyy hh:mi:ss:mmmAM |
131 | dd/mm/yy hh:mi:ss:mmmAM |
Convert(varchar(19),GetDate(),111) ————返回:2012/02/10
二、Oracle 双竖线 || :字符串拼接运算符
例:select substr(fjcp,0,1) || hphm from cltx ;其中fjcp为"闽O" hphm为"A12345" 拼接起来结果就是“闽A12345”
|| 运算符应该少用,因为如果在where条件中使用时,优化器是不会使用索引的,影响到效率。