日期时间函数

  • DATE_FORMAT(datetime ,fmt)和STR_TO_DATE(str, fmt)所需的日期模板
  1. 使用NOW(),SYSDATE(),CURDATE(),CURTIME()获取当前时间
SELECT CURTIME(),CURDATE(),NOW(),SYSDATE();
  1. DATEDIFF(date1,date2) 返回两个日期之间相差的天数
SELECT DATEDIFF(CURDATE(),’2019-3-1′); — 计算当前日期和2019-3-1之间相差的天数

案例: 计算员工表中服务年限大于35年的员工信息,并且按照年薪升序排列

SELECT EMPNO,ENAME,JOB,HIREDATE, ROUND(DATEDIFF(SYSDATE(),HIREDATE)/365) “服务年限”FROM EMPWHERE ROUND(DATEDIFF(SYSDATE(),HIREDATE)/365) > 35ORDER BY 服务年限;
SELECT EMPNO,ENAME,JOB,HIREDATE, ROUND(DATEDIFF(SYSDATE(),HIREDATE)/365) “服务年限”FROM EMPWHERE ROUND(DATEDIFF(SYSDATE(),HIREDATE)/365) > 35ORDER BY 服务年限;
SELECT EMPNO,ENAME,JOB,HIREDATE, ROUND(DATEDIFF(SYSDATE(),HIREDATE)/365) “服务年限”FROM EMPWHERE ROUND(DATEDIFF(SYSDATE(),HIREDATE)/365) > 35ORDER BY 服务年限;
SELECT EMPNO,ENAME,JOB,HIREDATE, ROUND(DATEDIFF(SYSDATE(),HIREDATE)/365) “服务年限”FROM EMPWHERE ROUND(DATEDIFF(SYSDATE(),HIREDATE)/365) > 35ORDER BY 服务年限;

注意:在WHERE子句中无法使用字段别名。这是因为MySql执行语句的顺序决定的

上面语句执行的顺序是:(1)FROM (2)WHERE (3)SELECT (4)ORDER BY 。中间的每一步都会生成一张虚拟表,后面的步骤都是在上一张虚拟表中进行筛选与查询的。在执行WHERE子句的时候还没有字段的别名。但是在执行ORDER BY的时候,字段的别名已经存在了。

我们可以使用如下的方式进行解决(后面我们会详细讲解这种用法)

SELECT TEMP.*FROM ( SELECT EMPNO,ENAME,JOB,HIREDATE, ROUND(DATEDIFF(SYSDATE(),HIREDATE)/365) “服务年限” FROM EMP) TEMPWHERE TEMP.服务年限 > 35;
SELECT TEMP.*FROM ( SELECT EMPNO,ENAME,JOB,HIREDATE, ROUND(DATEDIFF(SYSDATE(),HIREDATE)/365) “服务年限” FROM EMP) TEMPWHERE TEMP.服务年限 > 35;
SELECT TEMP.*FROM ( SELECT EMPNO,ENAME,JOB,HIREDATE, ROUND(DATEDIFF(SYSDATE(),HIREDATE)/365) “服务年限” FROM EMP) TEMPWHERE TEMP.服务年限 > 35;
SELECT TEMP.*FROM ( SELECT EMPNO,ENAME,JOB,HIREDATE, ROUND(DATEDIFF(SYSDATE(),HIREDATE)/365) “服务年限” FROM EMP) TEMPWHERE TEMP.服务年限 > 35;
  1. DATE_ADD(datetime, INTERVALE expr type), 返回与给定日期时间相差INTERVAL时间段的日期时间

案例: 查询EMP表中员工的转正日期

aft-type="table" data-size="normal" data-row-style="normal">

SELECT EMPNO,ENAME,JOB,HIREDATE 入职日期, DATE_ADD(HIREDATE, INTERVAL 3 MONTH) 转正日期FROM EMP;
SELECT EMPNO,ENAME,JOB,HIREDATE 入职日期, DATE_ADD(HIREDATE, INTERVAL 3 MONTH) 转正日期FROM EMP;
  1. STR_TO_DATE(str, fmt) 把一个字符串按照日期模板解析为DATE类型。注意:表示日期的字符串的字符串的格式必须要和模板的格式一致,转换才能成功
SELECT * FROM EMPWHERE HIREDATE = STR_TO_DATE(‘1980-12-17′,’%Y-%m-%d’); SELECT * FROM EMPWHERE HIREDATE = STR_TO_DATE(‘1981/20/2′,’%Y/%d/%m’);

-node="block" data-draft-type="table" data-size="normal" data-row-style="normal">

SELECT * FROM EMPWHERE HIREDATE = STR_TO_DATE(‘1980-12-17′,’%Y-%m-%d’); SELECT * FROM EMPWHERE HIREDATE = STR_TO_DATE(‘1981/20/2′,’%Y/%d/%m’);
SELECT * FROM EMPWHERE HIREDATE = STR_TO_DATE(‘1980-12-17′,’%Y-%m-%d’); SELECT * FROM EMPWHERE HIREDATE = STR_TO_DATE(‘1981/20/2′,’%Y/%d/%m’);
SELECT * FROM EMPWHERE HIREDATE = STR_TO_DATE(‘1980-12-17′,’%Y-%m-%d’); SELECT * FROM EMPWHERE HIREDATE = STR_TO_DATE(‘1981/20/2′,’%Y/%d/%m’);

-node="block" data-draft-type="table" data-size="normal" data-row-style="normal">

SELECT * FROM EMPWHERE HIREDATE = STR_TO_DATE(‘1980-12-17′,’%Y-%m-%d’); SELECT * FROM EMPWHERE HIREDATE = STR_TO_DATE(‘1981/20/2′,’%Y/%d/%m’);
  1. DATE_FORMAT(datetime ,fmt) 把一个日期类型的数据格式化为特定格式的字符串

案例: 查询员工的信息,把员工的入职日期显示为”日-月-年”格式

draft-type="table" data-size="normal" data-row-style="normal">

SELECT EMPNO,ENAME,HIREDATE ‘标准日期’, DATE_FORMAT(HIREDATE,’%d-%m-%Y’) “日期1″FROM EMP ;
SELECT EMPNO,ENAME,HIREDATE ‘标准日期’, DATE_FORMAT(HIREDATE,’%d-%m-%Y’) “日期1″FROM EMP ;

java format用法_java学习常用函数之日期时间函数相关推荐

  1. mysql添加字符串日期时间_mysql学习笔记--- 字符串函数、日期时间函数

    一.常见字符串函数:1.CHAR_LENGTH  获取长度(字符为单位) 2.FORMAT  格式化 3.INSERT  替换的方式插入 4.INSTR  获取位置 5.LEFT/RIGHT  取左. ...

  2. PHP函数之日期时间函数date()使用详解

    date()函数是我们在php开发中常碰到并且会使用到的一个日期函数,下面我来给大家介绍date()函数的一些基本扮靓和方法,有需要了解的朋友可进入参考 日期时间函数是PHP 的核心组成部分.无需安装 ...

  3. php 时间加法函数_PHP 日期时间函数的高级应用技巧

    PHP 日期时间函数常用函数高级使用技巧,大家在以后的开发中能用的到. PHP的日期时间函数date() 1,年-月-日 echo date('Y-m-j'); 2007-02-6 echo date ...

  4. SQL Server(第二章) 字符串函数、日期时间函数、转换函数

    --1.CONCAT 函数:字符串连接(支持sql server2012 SQL规则 如果与NULL连接返回NILL) SELECT empid,CONCAT(firstname,lastname) ...

  5. MySQL 之 单行函数(数学函数、字符串函数、日期时间函数、流程函数 )

    MySQL 之 单行函数 1.数学函数 2.字符串函数 3.日期时间函数 4.流程函数 5.其他函数

  6. java format用法_Java中String 的 format用法

    常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的读者应该记得C语言的sprintf()方法,两者有类似之处.format()方法有两种重 ...

  7. java format用法_Java String format() 方法

    例如: String 类的 format 方法可以格式化日期和时间import java.util.Date; import java.util.Locale; public class Main { ...

  8. php时间格式函数,PHP函数之日期时间函数date()使用详解_php基础_脚本

    $t=time(); echo date("Y-m-d H:i:s",$t); 第一个参数的格式分别表示: a - "am" 或是 "pm" ...

  9. PHP 中日期时间函数 date() 用法总结

    [导读] date()是我们常用的一个日期时间函数,下面我来总结一下关于date()函数的各种形式的用法,有需要学习的朋友可参考.格式化日期date() 函数的第一个参数规定了如何格式化日期 时间.它 ...

最新文章

  1. zabbix 配置wechat告警
  2. 【机器学习基础】数学推导+纯Python实现机器学习算法14:Ridge岭回归
  3. 解决android中出现的无法加载library的问题
  4. java 接口不是不能new吗?- java:使用匿名类直接new接口
  5. facenet训练自己的数据_①如何帮助自己简易分析体测数据②没有私教一个人无法开始训练?...
  6. C语言小案例——万年历制作
  7. 动态加载并获取usercontrol生成的html
  8. OpenCV 实现颜色直方图
  9. 【从零开始学架构-李运华】05|复杂度来源:高可用
  10. 英特尔hd630驱动_intel UHD graphics 620/630 -win7 驱动
  11. intel网卡驱动下载linux,Intel网卡驱动下载_万能英特尔网卡驱动_万能网卡驱动_5分享...
  12. 瑞星:愚人节Conficker蠕虫未在我国爆发
  13. U盘量产工具相关知识2
  14. 如何使用css3做简单的动画效果?
  15. Linux内核配置(10)
  16. Black Jack
  17. jQuery复习-(jQuery入门,jQuery语法(DOM),jQuery动画)
  18. android源码在线浏览网站
  19. 探索C++与Live555实现RTSP服务器的艺术
  20. 三星手机进入挖煤模式方法小结(变砖用)

热门文章

  1. python判断字符类型编程_Python检测数据类型的方法总结
  2. c++ 不插入重复元素但也不排序_面试时写不出排序算法?看这篇就够了
  3. 爬虫——多线程糗事百科案例
  4. 项目上线最后工作——布署环境
  5. vue变量传值_Vue各类组件之间传值的实现方式
  6. 刚参加完阿里Java P6面试归来,6点面试经验总结!(含必考题答案)
  7. 数据挖掘算法(logistic回归,随机森林,GBDT和xgboost)-腾讯云社区
  8. Tensorflow实现MLP
  9. #leetcode刷题之路35-搜索插入位置
  10. 我的iOS学习历程 - UISegmentedControl