`
269629151
  • 浏览: 122018 次
社区版块
存档分类
最新评论

学习笔记(主流数据库时间字段处理)

 
阅读更多

书名:《程序员的SQL 金典》

 

取得当前日期时间

MYSQL

MYSQL中提供了NOW()函数用于取得当前的日期时间,NOW()函数还有SYSDATE()、
CURRENT_TIMESTAMP等别名。如下:
SELECT NOW(),SYSDATE(),CURRENT_TIMESTAMP
执行完毕我们就能在输出结果中看到下面的执行结果:
NOW() SYSDATE() CURRENT_TIMESTAMP
2008-01-12 01:13:19 2008-01-12 01:13:19 2008-01-12 01:13:19
如果想得到不包括时间部分的当前日期,则可以使用CURDATE()函数,CURDATE()
函数还有CURRENT_DATE等别名。如下:
SELECT CURDATE(),CURRENT_DATE
执行完毕我们就能在输出结果中看到下面的执行结果:
CURDATE() CURRENT_DATE
2008-01-12 2008-01-12
如果想得到不包括日期部分的当前时间,则可以使用CURTIME()函数,CURTIME ()
函数还有CURRENT_TIME等别名。如下:
SELECT CURTIME(),CURRENT_TIME
执行完毕我们就能在输出结果中看到下面的执行结果:
CURTIME() CURRENT_TIME
01:17:09 01:17:09

MSQLServer

 

 

MSSQLServer 中用于取得当前日期时间的函数为GETDATE()。如下:
SELECT GETDATE() as 当前日期时间
执行完毕我们就能在输出结果中看到下面的执行结果:
当前日期时间
2008-01-12 01:02:04.78
可以看到GETDATE()返回的信息是包括了日期、时间(精确到秒以后部分)的时间戳
信息。MSSQLServer 没有专门提供取得当前日期、取得当前时间的函数,不过我们可以将
GETDATE()的返回值进行处理,这里需要借助于Convert()函数,这个函数的详细介绍后面
章节介绍,这里只介绍它在日期处理方面的应用。
使用 CONVERT(VARCHAR(50) ,日期时间值, 101)可以得到日期时间值的日期部分,因
此下面的SQL 语句可以得到当前的日期值:
SELECT CONVERT(VARCHAR(50) ,GETDATE( ), 101) as 当前日期
执行完毕我们就能在输出结果中看到下面的执行结果:
当前日期
01/14/2008
使用CONVERT(VARCHAR(50) ,日期时间值, 108)可以得到日期时间值的日期部分,因
此下面的SQL 语句可以得到当前的日期值:
SELECT CONVERT(VARCHAR(50) ,GETDATE(), 108) as 当前时间
执行完毕我们就能在输出结果中看到下面的执行结果:
当前时间
21:37:19

Oracle

 

Oracle 中没有提供取得当前日期时间的函数,不过我们可以到系统表DUAL 中查询
SYSTIMESTAMP的值来得到当前的时间戳。如下:
SELECT SYSTIMESTAMP
FROM DUAL
执行完毕我们就能在输出结果中看到下面的执行结果:
SYSTIMESTAMP
2008-1-14 21.46.42.78000000 8:0
同样,我们可以到系统表DUAL中查询SYSDATE 的值来得到当前日期时间。如下:
SELECT SYSDATE
FROM DUAL
执行完毕我们就能在输出结果中看到下面的执行结果:
SYSDATE
2008-01-14 21:47:16.0
同样,Oracle 中也没有专门提供取得当前日期、取得当前时间的函数,不过我们可以将
SYSDATE 的值进行处理,这里需要借助于TO_CHAR()函数,这个函数的详细介绍后面章节
介绍,这里只介绍它在日期处理方面的应用。
使用 TO_CHAR(时间日期值, 'YYYY-MM-DD') 可以得到日期时间值的日期部分,因此下
面的SQL 语句可以得到当前的日期值:
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD')
FROM DUAL
执行完毕我们就能在输出结果中看到下面的执行结果:
TO_CHAR(SYSDATE,YYYY-MM-DD)
2008-01-14
使用TO_CHAR(时间日期值, 'HH24:MI:SS') 可以得到日期时间值的时间部分,因此下
面的SQL 语句可以得到当前的日期值:
SELECT TO_CHAR(SYSDATE, 'HH24:MI:SS')
FROM DUAL
执行完毕我们就能在输出结果中看到下面的执行结果:
TO_CHAR(SYSDATE,HH24:MI:SS)
21:56:13

 DB2

 

DB2 中同样没有提供取得当前日期时间的函数,不过我们可以到系统表
SYSIBM.SYSDUMMY1中查询CURRENT TIMESTAMP的值来得到当前时间戳。如下:
SELECT CURRENT TIMESTAMP
FROM SYSIBM.SYSDUMMY1
执行完毕我们就能在输出结果中看到下面的执行结果:
1
2008-01-14-21.58.20.01515000
从系统表SYSIBM.SYSDUMMY1 中查询CURRENT DATE的值来得到当前日期值。如
下:
SELECT CURRENT DATE
FROM SYSIBM.SYSDUMMY1
执行完毕我们就能在输出结果中看到下面的执行结果:
1
2008-01-14
 从系统表SYSIBM.SYSDUMMY1 中查询CURRENT TIME的值来得到当前日期值。如
下:
SELECT CURRENT TIME
FROM SYSIBM.SYSDUMMY1
执行完毕我们就能在输出结果中看到下面的执行结果:
1
22:05:48

 

 

日期增减

MYSQL

MYSQL中提供了DATE_ADD()函数用于进行日期时间的加法运算,这个函数还有一个别名
为ADDDATE(),DATE_ADD()函数的参数格式如下:
DATE_ADD (date,INTERVAL expr type)
其中参数date为待计算的日期;参数expr为待进行加法运算的增量,它可以是数值类型
或者字符串类型,取决于type参数的取值;参数type则为进行加法运算的单位,type参数可
选值以及对应的expr参数的格式如下表:
type参数值 expr参数的格式 说明
MICROSECOND 数值类型 以微秒为计算单位
SECOND 数值类型以秒为计算单位
MINUTE 数值类型以分钟为计算单位
HOUR 数值类型以小时为计算单位
DAY 数值类型以天为计算单位
WEEK 数值类型以周为计算单位
MONTH 数值类型以月为计算单位
QUARTER 数值类型以季度为计算单位
YEAR 数值类型以年为计算单位
SECOND_MICROSECOND
字符串类型,格式为:
'SECONDS.MICROSECON
DS'
以秒、微秒为计算单位,要求expr参
数必须是“秒.微秒”的格式,比如
“30.10”表示增加30秒10微秒。
MINUTE_MICROSECOND
字符串类型,格式为:
'MINUTES.MICROSECON
DS'
以分钟、毫秒为计算单位,要求expr
参数必须是“分钟.微秒”的格式,
比如“30.10”表示增加30分钟10微
秒。
MINUTE_SECOND
字符串类型,格式为:
'MINUTES:SECONDS'
以分钟、秒为计算单位,要求expr参
数必须是“分钟:秒”的格式,比如
“30:10”表示增加30分钟10秒。
HOUR_MICROSECOND
字符串类型,格式为:
'HOURS.MICROSECONDS
'
以小时、微秒为计算单位,要求expr
参数必须是“小时.微秒”的格式,
比如“30.10”表示增加30小时10微
秒。
 HOUR_SECOND
字符串类型,格式为:
'HOURS:MINUTES:SECO
NDS'
以小时、分钟、秒为计算单位,要求
expr参数必须是“小时:分钟:秒”的
格式,比如“1:30:10”表示增加1小
时30分钟10秒。
HOUR_MINUTE
字符串类型,格式为:
'HOURS:MINUTES'
以小时、秒为计算单位,要求expr参
数必须是“小时:秒”的格式,比如
“30:10”表示增加30小时10秒。
DAY_MICROSECOND
字符串类型,格式为:
'DAYS.MICROSECONDS'
以天、微秒为计算单位,要求expr参
数必须是“天.微秒”的格式,比如
“30.10”表示增加30天10微秒。
DAY_SECOND
字符串类型,格式为:
'DAYS
HOURS:MINUTES:SECON
DS'
以天、小时、分钟、秒为计算单位,
要求expr参数必须是“天 小时:分钟:
秒”的格式,比如“1 3:28:36”表示
增加1天3小时28分钟36秒。
DAY_MINUTE
字符串类型,格式为:
'DAYS
HOURS:MINUTES'
以天、小时、分钟为计算单位,要求
expr参数必须是“天 小时:分钟”的
格式,比如“1 3:15”表示增加1天3
小时15分钟。
DAY_HOUR
字符串类型,格式为:
'DAYS HOURS'
以天、小时为计算单位,要求expr参
数必须是“天 小时”的格式,比如
“30 10”表示增加30天10小时。
YEAR_MONTH
字符串类型,格式为:
'YEARS-MONTHS'
以年、月为计算单位,要求expr参数
必须是“年-月”的格式,比如“2-8”
表示增加2年8个月。

 

 

MSSQLServer

MSSQLServer
MSSQLServer中提供了DATEADD()函数用于进行日期时间的加法运算, DATEADD ()函数
的参数格式如下:
DATEADD (datepart , number, date )
其中参数date为待计算的日期;参数date制定了用于与 datepart 相加的值,如果指定
了非整数值,则将舍弃该值的小数部分;参数datepart指定要返回新值的日期的组成部分,
下表列出了 Microso SQL Ser ver 2005 可识别的日期部分及其缩写:
取值 别名 说明
year yy,yyyy 年份
quarter qq,q 季度
month mm,m 月份
dayofyear dy,y 当年度的第几天
day dd,d 日
week wk,ww 当年度的第几周
weekday dw,w 星期几
 hour hh 小时
minute mi,n 分
second ss,s 秒
millisecond ms 毫秒
比 如DATEADD(DAY, 3,date) 为计算日期date 的3 天后的日期, 而
DATEADD(MONTH ,-8,date)为计算日期date的8 个月之前的日期。
下面的SQL语句用于计算每个人出生后3 年、20 个季度、68 个月以及1000 个周前的
日期:
SELECT FBirthDay, DATEADD (YEAR ,3,FBirthDay) as threeyrs,
DATEADD(QUARTER ,20,FBirthDay) as ttqutrs,
DATEADD(MONTH ,68,FBirthDay) as sxtmonths,
DATEADD(WEEK, -1000,FBirthDay) as thweeik
FROM T_Person

 

 

Oracle

分享到:
评论

相关推荐

    linux运维学习笔记:数据库介绍与安装管理.pdf

    数据库是一种用于存储、检索和管理数据的系统,它允许用户对存储在其中的数据执行各种操作,包括...通过不断地学习和实践,数据库管理员能够确保数据库系统的稳定性、安全性和性能,以满足企业对数据存储和管理的需求。

    数据库原理入门知识学习笔记

    数据库原理入门知识的学习是一个基础而关键的阶段,对于理解数据管理和信息系统的核心至关重要。本文将深入探讨数据库的基础概念,包括数据库、数据库管理系统、数据模型以及数据的抽象级别。 首先,数据库...

    学习基础数据库脚本笔记.txt

    - **主流数据库软件**: - **Oracle**: 主要应用于企业级应用,支持复杂的数据管理和安全性需求。 - **MySQL**: 开源且易于使用的数据库管理系统,广泛应用于中小型项目和Web应用。 - **SQL Server**: 微软提供的...

    oracle数据库学习笔记

    ### Oracle数据库学习笔记知识点 #### 一、Oracle的用户管理 **Oracle认证体系:** - **OCAR (Oracle Certified Associate):** Oracle初级工程师认证,入门级别认证,为后续更高级别的认证打下基础。 - **OCP ...

    数据库学习笔记

    ### 数据库学习笔记知识点梳理 #### 一、数据库基础概念 **1.1 数据库简介** - **文件存储** - 数据存储的历史演变:从手工管理到文件管理再到数据库管理。 - 文件存储的局限性:缺乏整体管理、不易修改、不...

    oralc数据库学习笔记.pdf

    Oracle数据库与其他主流数据库如SQL Server、MySQL、DB2等共同构成了数据库市场的多元化格局。 Oracle数据库在服务中启动,主要的服务启动项包括OracleServiceORACLEE和OracleOraDb10g_home1TNSListener。管理...

    史上最全数据库笔记(上).docx

    本资源笔记详细介绍了数据库的基本概念、数据库管理系统、主流数据库系统、数据库存储数据的种类、数据库命令简介等知识点。 一、为什么使用 SQL 数据库? 数据库又称作数据集合,如果没有数据库管理人员需要一条一...

    Mysql最全学习笔记

    MySQL学习笔记 数据库基础知识: * 数据库(DB):存储数据的容器。 * 数据库管理系统(DBMS):创建或管理数据库的软件,例如 MySQL、Oracle、SQL Server 等。 SQL 介绍: * 结构化查询语言(SQL):与数据库...

    在工作中java学习资料学习笔记

    这份“在工作中Java学习资料学习笔记”旨在帮助开发者在实际项目开发中提升技能和效率。以下是一些关键知识点的详细说明: 1. **面向对象编程**:Java的核心特性是面向对象编程(OOP),它将数据和操作数据的方法...

    郑志远的java学习笔记

    《郑志远的Java学习笔记》是一份详细记录了作者郑志远在深入学习Java编程过程中积累的知识点和实践经验的文档。这份笔记以其系统性、实用性以及深入浅出的讲解方式,成为了Java初学者和进阶者的重要参考资料。以下是...

    MySQL学习笔记

    ### MySQL学习笔记知识点详解 #### 一、MySQL简介与数据描述的三个领域 **1. 数据描述的三个领域** 在数据库的设计与应用过程中,我们通常会提到数据描述的三个领域:现实世界、信息世界和机器世界。 - **现实...

    四级数据库工程师复习笔记及试题答案详解

    ### 四级数据库工程师复习笔记及试题答案详解 #### 第一章 引论 ##### 1.1 基本概念 **1.1.1 信息与数据** 1. **信息**: 客观世界事物的存在方式和运动状态的反映,是对事物之间相互联系、相互作用的描述。信息...

    hibernate学习笔记

    本文主要围绕Hibernate 3.2的学习笔记,涵盖其基本概念、配置、映射机制以及核心开发接口。 一、O/R Mapping简介与优点 1. O/R Mapping(对象关系映射)是为了解决面向对象编程与关系型数据库之间的差异,通过在...

    学习记录_中级软件工程师软件工程师_数据库

    综上所述,中级软件工程师需要具备扎实的Oracle数据库基础知识,同时也要了解其他主流数据库系统的特点与应用场景,这样才能更好地满足实际项目的需求。通过不断学习和实践,逐步提高自己的技术水平。

    Oracle数据库笔记

    ### Oracle数据库基础知识...了解这些基础知识对于深入学习 Oracle 数据库或其他关系型数据库至关重要。无论是选择 Oracle、DB2、Sybase、SQL Server 还是 MySQL,掌握这些核心概念将为您的职业生涯打下坚实的基础。

    mongodb学习笔记

    ### MongoDB 学习笔记知识点详解 #### MongoDB 介绍 ##### 简介 MongoDB 是一种基于分布式文件存储的数据库,使用 C++ 编写。它主要为 Web 应用程序提供可扩展、高性能的数据存储解决方案。MongoDB 的数据结构非常...

    Java学习笔记(必看经典).

    本"Java学习笔记(必看经典)"文档旨在提供一个全面、深入的学习指南,帮助初学者和有一定经验的开发者巩固Java基础知识,探索高级特性,并提升实际编程技能。 Java学习笔记涵盖以下关键知识点: 1. **基础语法**:...

    java学习笔记和资源

    这份“Java学习笔记和资源”包含的可能是一份详细的学习指南,涵盖了从基础到高级的Java编程概念,以及一些实用的Java开发资源。下面将详细阐述Java编程的一些核心知识点。 1. **Java基础**:任何Java学习的起点都...

    spring学习笔记.doc

    1. 分层架构:Spring支持控制层、服务层和数据库访问层的清晰划分,降低了各层之间的耦合。 2. 事务管理:Spring提供了一种声明式事务管理方式,无需编写复杂的事务传播代码。 3. 单例模式:Spring默认会将bean设置...

Global site tag (gtag.js) - Google Analytics