Sql Server

CONVERT ( '取数长度' , '时间' , '类型') 查询对应时间: 2021-03-17T19:18:18.007
Select CONVERT(varchar(100), GETDATE(), 0) -- 03 17 2021 7:18PM
Select CONVERT(varchar(100), GETDATE(), 1) -- 03/17/21
Select CONVERT(varchar(100), GETDATE(), 2) -- 21.03.17
Select CONVERT(varchar(100), GETDATE(), 3) -- 2017-3-21
Select CONVERT(varchar(100), GETDATE(), 4) -- 17.03.21
Select CONVERT(varchar(100), GETDATE(), 5) -- 2017-3-21
Select CONVERT(varchar(100), GETDATE(), 6) -- 17 03 21
Select CONVERT(varchar(100), GETDATE(), 7) -- 03 17, 21
Select CONVERT(varchar(100), GETDATE(), 8) -- 19:18:18
Select CONVERT(varchar(100), GETDATE(), 9) -- 03 17 2021 7:18:18:007PM
Select CONVERT(varchar(100), GETDATE(), 10) -- 03-17-21
Select CONVERT(varchar(100), GETDATE(), 11) -- 2021-3-17
Select CONVERT(varchar(100), GETDATE(), 12) -- 210317
Select CONVERT(varchar(100), GETDATE(), 13) -- 17 03 2021 19:18:18:007
Select CONVERT(varchar(100), GETDATE(), 14) -- 19:18:18:007
Select CONVERT(varchar(100), GETDATE(), 20) -- 2021-3-17 19:18
Select CONVERT(varchar(100), GETDATE(), 21) -- 18:18.0
Select CONVERT(varchar(100), GETDATE(), 22) -- 03/17/21 7:18:18 PM
Select CONVERT(varchar(100), GETDATE(), 23) -- 2021-3-17
Select CONVERT(varchar(100), GETDATE(), 24) -- 19:18:18
Select CONVERT(varchar(100), GETDATE(), 25) -- 18:18.0
Select CONVERT(varchar(100), GETDATE(), 100) -- 03 17 2021 7:18PM
Select CONVERT(varchar(100), GETDATE(), 101) -- 03/17/2021
Select CONVERT(varchar(100), GETDATE(), 102) -- 2021.03.17
Select CONVERT(varchar(100), GETDATE(), 103) -- 17/03/2021
Select CONVERT(varchar(100), GETDATE(), 104) -- 17.03.2021
Select CONVERT(varchar(100), GETDATE(), 105) -- 17-03-2021
Select CONVERT(varchar(100), GETDATE(), 106) -- 17 03 2021
Select CONVERT(varchar(100), GETDATE(), 107) -- 03 17, 2021
Select CONVERT(varchar(100), GETDATE(), 108) -- 19:18:18
Select CONVERT(varchar(100), GETDATE(), 109) -- 03 17 2021 7:18:18:007PM
Select CONVERT(varchar(100), GETDATE(), 110) -- 03-17-2021
Select CONVERT(varchar(100), GETDATE(), 111) -- 2021-3-17
Select CONVERT(varchar(100), GETDATE(), 112) -- 20210317
Select CONVERT(varchar(100), GETDATE(), 113) -- 17 03 2021 19:18:18:007
Select CONVERT(varchar(100), GETDATE(), 114) -- 19:18:18:007
Select CONVERT(varchar(100), GETDATE(), 120) -- 2021-3-17 19:18
Select CONVERT(varchar(100), GETDATE(), 121) -- 18:18.0
Select CONVERT(varchar(100), GETDATE(), 126) -- 2021-03-17T19:18:18.007
Select CONVERT(varchar(100), GETDATE(), 130) -- 4 ????? 1442 7:18:18:007PM
Select CONVERT(varchar(100), GETDATE(), 131) -- 4/08/1442 7:18:18:007PM
Oracle

-- 字符串转时间类型
SELECT to_date(SYSDATE,'yyyy-mm-dd hh24:mi:ss') FROM dual;
-- 时间转指定格式字符串
SELECT to_char(SYSDATE,'yyyy"年"mm"月"dd"日"') FROM DUAL; -- 年 季 月 日 取值
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; --日 -- Oracle 时间
SELECT SYSDATE FROM dual; -- 系统时间
SELECT SYSTIMESTAMP FROM dual; -- 当前系统时间戳
SELECT CURRENT_TIMESTAMP FROM dual; -- 与时区设置有关,返回的秒是系统的,返回的日期和时间是根据时区转换过的
SELECT current_date FROM dual; -- 是对CURRENT_TIMESTAMP准确到秒的四舍五入 select TO_DATE('19700101','yyyymmdd') + 1235728935/86400 +TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))/24 from dual,其中1235728935就是unix/linux时间戳,转换完之后就表示为 2009-2-27 18:02:15。
反过来也一样,还是要考虑时区
select (to_date('2009-2-27 18:02:15','yyyy-mm-dd hh24:mi:ss') - to_date('1970-1-1','yyyy-mm-dd'))*86400- TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))*3600 from dual -- 时间差计算
DECLARE
START_DATE DATE;
END_DATE DATE;
BEGIN
START_DATE := SYSDATE - 1 ;
END_DATE := SYSDATE ;
dbms_output.put_line('相差天数 :' || ROUND(TO_NUMBER(END_DATE - START_DATE)));
dbms_output.put_line('相差小时数 :' || ROUND(TO_NUMBER(END_DATE - START_DATE) * 24));
dbms_output.put_line('相差分钟数 :' || ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60));
dbms_output.put_line('相差秒数 :' || ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60));
dbms_output.put_line('相差毫秒数 :' || ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60 * 1000));
END; -- 时间日期加减
select sysdate,add_months(sysdate,12) from dual; --加1年
select sysdate,add_months(sysdate,1) from dual; --加1月
select sysdate,to_char(sysdate+7,'yyyy-mm-dd HH24:MI:SS') from dual; --加1星期
select sysdate,to_char(sysdate+1,'yyyy-mm-dd HH24:MI:SS') from dual; --加1天
select sysdate,to_char(sysdate+1/24,'yyyy-mm-dd HH24:MI:SS') from dual; --加1小时
select sysdate,to_char(sysdate+1/24/60,'yyyy-mm-dd HH24:MI:SS') from dual; --加1分钟
select sysdate,to_char(sysdate+1/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual; --加1秒
--------------------------------------------------------------------------------------
select sysdate,add_months(sysdate,-12) from dual; --减1年
select sysdate,add_months(sysdate,-1) from dual; --减1月
select sysdate,to_char(sysdate-7,'yyyy-mm-dd HH24:MI:SS') from dual; --减1星期
select sysdate,to_char(sysdate-1,'yyyy-mm-dd HH24:MI:SS') from dual; --减1天
select sysdate,to_char(sysdate-1/24,'yyyy-mm-dd HH24:MI:SS') from dual; --减1小时
select sysdate,to_char(sysdate-1/24/60,'yyyy-mm-dd HH24:MI:SS') from dual; --减1分钟
select sysdate,to_char(sysdate-1/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual; --减1秒
MySql
 select date_format(moment,'%Y%m%d %H:%i:%s')

* %S, %s 两位数字形式的秒( 00,01, . . ., 59)
* %i 两位数字形式的分( 00,01, . . ., 59)
* %H 两位数字形式的小时,24 小时(00,01, . . ., 23)
* %h, %I 两位数字形式的小时,12 小时(01,02, . . ., 12)
* %k 数字形式的小时,24 小时(0,1, . . ., 23)
* %l 数字形式的小时,12 小时(1, 2, . . ., 12)
* %T 24 小时的时间形式(h h : m m : s s)
* %r 12 小时的时间形式(hh:mm:ss AM 或hh:mm:ss PM)
* %p AM 或P M %W 一周中每一天的名称( S u n d a y, Monday, . . ., Saturday)
* %a 一周中每一天名称的缩写( Sun, Mon, . . ., Sat)
* %d 两位数字表示月中的天数( 00, 01, . . ., 31)
* %e 数字形式表示月中的天数( 1, 2, . . ., 31)
* %D 英文后缀表示月中的天数( 1st, 2nd, 3rd, . . .)
* %w 以数字形式表示周中的天数( 0 = S u n d a y, 1=Monday, . . ., 6=Saturday)
* %j 以三位数字表示年中的天数( 001, 002, . . ., 366)
* %U 周(0, 1, 52),其中Sunday 为周中的第一天
* %u 周(0, 1, 52),其中Monday 为周中的第一天
* %M 月名(J a n u a r y, February, . . ., December)
* %b 缩写的月名( J a n u a r y, February, . . ., December)
* %m 两位数字表示的月份( 01, 02, . . ., 12)
* %c 数字表示的月份( 1, 2, . . ., 12)
%Y 四位数字表示的年份
* %y 两位数字表示的年份 %% 直接值“%” SELECT curdate(); -- 获取当前日期
select curtime(); -- 获取当前时间
select now(); -- 取得当前日期时间
除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数:
current_timestamp()
,current_timestamp
,localtime()
,localtime
,localtimestamp -- (v4.0.6)
,localtimestamp() -- (v4.0.6)
select sysdate(), sleep(3), sysdate(); -- now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。
select utc_timestamp(), utc_date(), utc_time(), now() -- 我国位于东八时区,所以本地时间 = UTC 时间 + 8 小时。UTC 时间在业务涉及多个国家和地区的时候,非常有用。 select date_sub(curdate(),interval 1 day); -- 取得前一天
date_sub()函数的例子:
select date_sub(curdate(),interval 1 day) 表示 2013-05-19
select date_sub(curdate(),interval -1 day) 表示 2013-05-21
select date_sub(curdate(),interval 1 month) 表示 2013-04-20
select date_sub(curdate(),interval -1 month) 表示 2013-06-20
select date_sub(curdate(),interval 1 year) 表示 2012-05-20
select date_sub(curdate(),interval -1 year) 表示 2014-05-20 MySQL datediff(date1,date2):两个日期相减 date1 - date2,返回天数。
period_add(P,N):日期加/减去N月。P:“YYYYMM” 或者 “YYMM”,N” :增加或减去 N month(月)。只针对月
period_diff(P1,P2):日期 P1-P2,返回 N 个月。 select datediff('2008-08-08', '2008-08-01'); -- 7
select datediff('2008-08-01', '2008-08-08'); -- -7 1. 选取日期时间的各个部分:日期、时间、年、季度、月、日、小时、分钟、秒、微秒 set @dt = '2008-09-10 07:15:30.123456'; select date(@dt); -- 2008-09-10
select time(@dt); -- 07:15:30.123456
select year(@dt); -- 2008
select quarter(@dt); -- 3
select month(@dt); -- 9
select week(@dt); -- 36
select day(@dt); -- 10
select hour(@dt); -- 7
select minute(@dt); -- 15
select second(@dt); -- 30
select microsecond(@dt); -- 123456 2. MySQL Extract() 函数,可以上面实现类似的功能: set @dt = '2008-09-10 07:15:30.123456'; select extract(year from @dt); -- 2008
select extract(quarter from @dt); -- 3
select extract(month from @dt); -- 9
select extract(week from @dt); -- 36
select extract(day from @dt); -- 10
select extract(hour from @dt); -- 7
select extract(minute from @dt); -- 15
select extract(second from @dt); -- 30
select extract(microsecond from @dt); -- 123456
select extract(year_month from @dt); -- 200809
select extract(day_hour from @dt); -- 1007
select extract(day_minute from @dt); -- 100715
select extract(day_second from @dt); -- 10071530
select extract(day_microsecond from @dt); -- 10071530123456
select extract(hour_minute from @dt); -- 715
select extract(hour_second from @dt); -- 71530
select extract(hour_microsecond from @dt); -- 71530123456
select extract(minute_second from @dt); -- 1530
select extract(minute_microsecond from @dt); -- 1530123456
select extract(second_microsecond from @dt); -- 30123456 3. 函数:dayofweek(), dayofmonth(), dayofyear()
分别返回日期参数,在一周、一月、一年中的第几天。 set @dt = '2008-08-08'; select dayofweek(@dt); -- 6
select dayofmonth(@dt); -- 8
select dayofyear(@dt); -- 221 函数:week(), weekofyear(), dayofweek(), weekday(), yearweek() set @dt = '2008-08-08'; select week(@dt); -- 31 位于一年中的第几周
select week(@dt,3); -- 32 位于一年中的第几周
select weekofyear(@dt); -- 32 位于一年中的第几周
select dayofweek(@dt); -- 6 (1 = Sunday, 2 = Monday, ..., 7 = Saturday)
select weekday(@dt); -- 4 (0 = Monday, 1 = Tuesday, ..., 6 = Sunday) select yearweek(@dt); -- 200831 MySQL week() 函数,可以有两个参数,具体可看手册。 weekofyear() 和 week() 一样,都是计算“某天”是位于一年中的第几周。 weekofyear(@dt) 等价于 week(@dt,3)。 MySQL weekday() 函数和 dayofweek() 类似,都是返回“某天”在一周中的位置。不同点在于参考的标准, weekday:(0 = Monday, 1 = Tuesday, ..., 6 = Sunday); dayofweek:(1 = Sunday, 2 = Monday, ..., 7 = Saturday) 4. last_day() 函数:返回月份中的最后一天。 select last_day('2008-02-01'); -- 2008-02-29 5. 函数:dayname(), monthname() 返回星期和月份名称 set @dt = '2008-08-08'; select dayname(@dt); -- Friday
select monthname(@dt); -- August 6. date_add() 日期增加一个时间间隔
date_sub 日期减去一个时间间隔 set @dt = now(); select date_add(@dt, interval 1 day); -- add 1 day
select date_add(@dt, interval 1 hour); -- add 1 hour
select date_add(@dt, interval 1 minute); -- ...
select date_add(@dt, interval 1 second);
select date_add(@dt, interval 1 microsecond);
select date_add(@dt, interval 1 week);
select date_add(@dt, interval 1 month);
select date_add(@dt, interval 1 quarter);
select date_add(@dt, interval 1 year);
select date_add(@dt, interval -1 day); -- sub 1 day select date_sub(@dt, interval 1 day); select date_add(@dt, interval '01:15:30' hour_second); --增加了“1小时 15分 30秒
select date_add(@dt, interval '1 01:15:30' day_second); --增加了“1天 1小时 15分 30秒” 1. MySQL (时间、秒)转换函数:time_to_sec(time), sec_to_time(seconds) select time_to_sec('01:00:05'); -- 3605
select sec_to_time(3605); -- '01:00:05' 2. MySQL (日期、天数)转换函数:to_days(date), from_days(days) select to_days('0000-00-00'); -- 0
select to_days('2008-08-08'); -- 733627 select from_days(0); -- '0000-00-00'
select from_days(733627); -- '2008-08-08' 3. MySQL Str to Date (字符串转换为日期)函数:str_to_date(str, format) select str_to_date('08/09/2008', '%m/%d/%Y'); -- 2008-08-09
select str_to_date('08/09/08' , '%m/%d/%y'); -- 2008-08-09
select str_to_date('08.09.2008', '%m.%d.%Y'); -- 2008-08-09
select str_to_date('08:09:30', '%h:%i:%s'); -- 08:09:30
select str_to_date('08.09.2008 08:09:30', '%m.%d.%Y %h:%i:%s'); -- 2008-08-09 08:09:30 4. MySQL 拼凑日期、时间函数:makdedate(year,dayofyear), maketime(hour,minute,second) select makedate(2001,31); -- '2001-01-31'
select makedate(2001,32); -- '2001-02-01' select maketime(12,15,30); -- '12:15:30'

Sql Server、Oracle、MySQL 日期格式化函数处理的更多相关文章

  1. SQL Server中的日期格式化

    SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm 例如: select getdate()    2004-09-12 11:06:08 ...

  2. MySql 日期格式化函数date_format()

    mysql> select date_format(now(),'%Y'); +-------------------------+ | date_format(now(),'%Y') | +- ...

  3. Sql Server 日期格式化函数

    Sql Server 中一个非常强大的日期格式化函数Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AMSelect CONVE ...

  4. Sql Server 中一个非常强大的日期格式化函数

    Sql Server 中一个非常强大的日期格式化函数Select CONVERT(varchar(100), GETDATE(), 0)-- 05 16 2006 10:57AMSelect CONV ...

  5. [转]sql server 数据库日期格式化函数

    转至:http://www.cnblogs.com/hantianwei/archive/2009/12/03/1616148.html 0   或   100   (*)     默认值   mon ...

  6. SQL Server 函数之日期格式化函数

    SQL Server 函数之日期格式化函数 高文龙关注0人评论612人阅读2017-09-23 13:47:07 SQL Server 函数之日期格式化函数 对于一些经常写SQL Server执行语句 ...

  7. 对Oracle 、SQL Server、MySQL、PostgreSQL数据库优缺点分析

    对Oracle .SQL Server.MySQL.PostgreSQL数据库优缺点分析 Oracle Database Oracle Database,又名Oracle RDBMS,或简称Oracl ...

  8. SQL GETDATE()日期格式化函数

    Sql Server 中一个非常强大的日期格式化函数 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AMSelect CONV ...

  9. SQL 日期格式化函数

    Sql Server 中一个非常强大的日期格式化函数: 获得当前系统时间,GETDATE(): 2008年01月08日 星期二 14:59 Select CONVERT(varchar(100), G ...

随机推荐

  1. Java8-JVM内存区域划分白话解读

    前言 java作为一款能够自动管理内存的语言,与传统的c/c++语言相比有着自己独特的优势.虽然我们无需去管理内存,但为了防范可能发生的异常,我们需要对java内部数据如何存储有一定了解,已应对突发问 ...

  2. Linux下Zabbix5.0 LTS添加自定义监控项

    自定义监控项 zabbix本身提供了很多可选的监控项,可以满足绝大部分的监控需求.有时候由于业务需求,需要自定义监控项. 下面以创建mysql自定义监控项为例,分享如何创建zabbix自定义监控项. ...

  3. vagrant创建centos7后虚拟机磁盘爆满

    1.问题现象 使用df -h命令,磁盘占用直接99%,明明啥也没干...  2.解决方案 找到C:\Users\你的用户名\.vagrant.d\boxes\centos7\0\virtualbox目 ...

  4. Vulnhub-DarkHole_1 题解

    Vulnhub-DarkHole_1-Writeup 靶机地址:DARKHOLE: 1 Difficulty: Easy 扫描与发现 使用arp-scan发现目标IP arp-scan -l 使用nm ...

  5. 状压DP详解+题目

    介绍 状压dp其实就是将状态压缩成2进制来保存 其特征就是看起来有点像搜索,每个格子的状态只有1或0 ,是另一类非常典型的动态规划 举个例子:有一个大小为n*n的农田,我们可以在任意处种田,现在来描述 ...

  6. 卸载.net 5.0后使用dotnet提示Found .NET Core SDK

    之前安装了预览版本的vs2019后试了下,然后卸载了.但发现控制台执行dotnet相关命令提示Found .NET Core SDK, but did not find dotnet.dll at [ ...

  7. 雪花算法对System.currentTimeMillis()优化真的有用么?

    前面已经讲过了雪花算法,里面使用了System.currentTimeMillis()获取时间,有一种说法是认为System.currentTimeMillis()慢,是因为每次调用都会去跟系统打一次 ...

  8. Codeforces 1290F - Making Shapes(数位 dp)

    Codeforces 题面传送门 & 洛谷题面传送门 数位 dp 好题. 首先,由于是凸包,一但向量集合确定,凸包的形态肯定就已经确定了.考虑什么样的向量集合能够组成符合条件的凸包,我们假设第 ...

  9. 【豆科基因组】豇豆Cowpea,Vigna unguiculata [L.] Walp.基因组2019PJ

    目录 来源 结果 基因组大小估计 采用stitching方法组装 修改豇豆染色体编号 基因注释和重复DNA 豇豆遗传多样性 SNP和INDEL Vu03 上 4.2-Mb 染色体倒位的鉴定 与其他暖季 ...

  10. docker_清华源国内的选择

    清华大学开源镜像官网:https://mirrors.tuna.tsinghua.edu.cn/ 前期: 在centos7 中的extras 源里面有docker 安装包,但是里面的安装包是比较旧的 ...