mysql datediff函数怎么用_SQL中datediff函数怎么用?(代码详解)
在SQL Server中,可以使用T-SQL DATEDIFF()函数返回两个日期之间的差异。它适用于任何可以解析为time、date、smalldatetime、datetime、datetime2或datetimeoffset值的表达式。因此,你也可以得到两次的差值。
本文提供了SQL Server中的DATEDIFF()函数的使用示例。
DATEDIFF()函数语法如下:DATEDIFF ( datepart , startdate , enddate )
其中datepart是你想要比较的日期的一部分。startdate是第一个日期,enddate是结束日期。
它的工作方式是从enddate中减去startdate。
示例1
下面是一个基本的例子,我们可以算出两个日期之间的天数:SELECT DATEDIFF(day, '2001-01-01', '2002-01-01') AS Result;
结果:+----------+
| Result |
|----------|
| 365 |
+----------+
示例2
下面是另一个例子,我声明了两个变量并为它们分配了两个不同的日期(我使用DATEADD()将第一个日期添加1年)。然后使用DATEDIFF()返回该日期的各个dateparts:DECLARE @date1 datetime2 = '2000-01-01 00:00:00.0000000';
DECLARE @date2 datetime2 = DATEADD(year, 1, @date1);
SELECT
DATEDIFF( year, @date1, @date2 ) AS Years,
DATEDIFF( quarter, @date1, @date2 ) AS Quarters,
DATEDIFF( month, @date1, @date2 ) AS Months,
DATEDIFF( week, @date1, @date2 ) AS Weeks,
DATEDIFF( dayofyear, @date1, @date2 ) AS DayOfYear,
DATEDIFF( day, @date1, @date2 ) AS Days;
结果:+---------+------------+----------+---------+-------------+--------+
| Years | Quarters | Months | Weeks | DayOfYear | Days |
|---------+------------+----------+---------+-------------+--------|
| 1 | 4 | 12 | 53 | 366 | 366 |
+---------+------------+----------+---------+-------------+--------+
示例3
如前所述,你还可以返回日期之间的时间部分。下面是返回日期/时间值之间的小时、分钟和秒数的例子:DECLARE @date1 datetime2 = '2000-01-01 00:00:00.0000000';
DECLARE @date2 datetime2 = DATEADD(hour, 1, @date1);
SELECT
DATEDIFF( hour, @date1, @date2 ) AS Hours,
DATEDIFF( minute, @date1, @date2 ) AS Minutes,
DATEDIFF( second, @date1, @date2 ) AS Seconds;
结果:+---------+-----------+-----------+
| Hours | Minutes | Seconds |
|---------+-----------+-----------|
| 1 | 60 | 3600 |
+---------+-----------+-----------+
示例4
下面是一个获取两个日期/时间值之间的毫秒、微秒和纳秒数的例子:DECLARE @date1 datetime2 = '2000-01-01 00:00:00.0000000';
DECLARE @date2 datetime2 = DATEADD(millisecond, 1, @date1);
SELECT
DATEDIFF( millisecond, @date1, @date2 ) AS Milliseconds,
DATEDIFF( microsecond, @date1, @date2 ) AS Microseconds,
DATEDIFF( nanosecond, @date1, @date2 ) AS Nanoseconds;
结果:+----------------+----------------+---------------+
| Milliseconds | Microseconds | Nanoseconds |
|----------------+----------------+---------------|
| 1 | 1000 | 1000000 |
+----------------+----------------+---------------+
示例5 - Error错误!
如果你尝试做一些极端的事情,比如,返回100年后的纳秒数,你会得到一个错误。这是因为DATEDIFF()返回一个int值,100年内的纳秒数比int数据类型能够处理的纳秒数还要多。
如果你试着这么做会发生什么呢?DECLARE @date1 datetime2 = '2000-01-01 00:00:00.0000000';
DECLARE @date2 datetime2 = DATEADD(year, 100, @date1);
SELECT
DATEDIFF( millisecond, @date1, @date2 ) AS Milliseconds,
DATEDIFF( microsecond, @date1, @date2 ) AS Microseconds,
DATEDIFF( nanosecond, @date1, @date2 ) AS Nanoseconds;
结果:The datediff function resulted in an overflow. The number of dateparts separating two date/time instances is too large. Try to use datediff with a less precise datepart.
当然如果你真的必须找出100年内有多少纳秒,那么可以使用DATEDIFF_BIG()函数。这个函数返回一个带符号的bigint数据类型,它允许你返回比DATEDIFF()更大的值。
相关推荐:《MySQL教程》
mysql datediff函数怎么用_SQL中datediff函数怎么用?(代码详解)相关推荐
- yii mysql 事务处理_Yii2中事务的使用实例代码详解
前言 一般我们做业务逻辑,都不会仅仅关联一个数据表,所以,会面临事务问题. 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全 ...
- python的常量和变量_python中的常量和变量代码详解
局部和全局变量: # name='lhf' # def change_name(): # # global name # name='帅了一比' # print('change_name',name) ...
- vue build text html,Vue中v-text / v-HTML使用实例代码详解_放手_前端开发者
废话少说,代码如下所述: /p> 显示123 /p> 补充:vuejs {{}},v-text 和 v-html的区别 {{message}} let app = new Vue({ el ...
- mysql datediff函数怎么用_SQL中datediff函数有哪些用途呢?
摘要: 下文讲述SQL中datediff函数的用途,如下所示: datediff函数功能说明: datediff用于返回两个日期之间的差值,返回单位可以为(年.月.日.小时.分钟.秒.毫秒等等) 下文 ...
- python输出变量代码_Python中变量的输入输出实例代码详解
1.变量的输入: input函数: input() input("请输入银行卡密码") password = input("请输入银行卡密码") 变量名 = i ...
- 【Scala】Scala中常见集合的使用---代码详解
1.List集合的使用及创建 object ListDemo1 {def main(args: Array[String]): Unit = {//创建一个Listval list: List[Int ...
- Transformer | DETR目标检测中的位置编码position_encoding代码详解
本文主要描述的是DETR论文中的position_encoding,详细DETR论文解析可参考 论文篇 | 2020-Facebook-DETR :利用Transformers端到端的目标检测=> ...
- php 变量代码,php中的可变变量(代码详解)
php中的可变变量 有时候使用可变变量名是很方便的.就是说,一个变量的变量名可以动态的设置和使用.一个普通的变量通过声明来设置,例如:<?php $a = 'hello'; ?> 一个可变 ...
- css修改代码,网站模板修改中常用到的CSS代码详解
在上一篇文章中,提到了一些修改网站模板中常用到的方法,工具.但其中也牵涉到不到关于CSS样式表的一些知识,对于这些知识,缺乏的还占大多数,今天我就将常用的一些CSS样式表语法整理一下,发出来给大家,希 ...
最新文章
- netty源码深度分析
- Ubuntu常用翻译工具——星际译王StarDict
- (二十九)、Java字符串中去除空格
- javascript数字验证(转)
- 解决ERROR 1396 (HY000): Operation ALTER USER failed for root@localhost
- 集合竞价如何买入_世界上最稳健的抓涨停方法“10分钟集合竞价”选股诀窍,买入直接稳赚10个点,赚到笑...
- iOS 评论中含有表情的处理方法
- map的基本操作总结C++
- 趣谈网络协议笔记 - 通信协议综述
- matlab7.0窗口教程,MATLAB7.0实用教程
- c语言输出100以内的素数存放数组中,c语言素数(c语言输出100以内素数)
- Windows 7 多国语言包(MUI)
- kde下gwenview启动慢,甚至几十秒才能启动
- 深入浅出Embedding
- pe克隆linux系统下载,【完美成功】合并ntdetect.com的PE用的SETUPLDR.BIN(增加ISO/SYSLINUX专用版)...
- 《Redis设计与实现》笔记
- 到底什么是响应式布局,响应式布局如何去写
- 狂甩4大必杀技,乐视曲面分体超4忒狠了!
- 微信小程序新闻详情页面效果实现
- 网赚项目 - 陌陌引流,变现的步骤和方法
热门文章
- [乐意黎原创] WebPack 打包时抛Uncaught Error: Cannot find module '.\dist\bundle.js'
- 定位技术之室内定位浅析--新导智能
- Java Jsp+Servlet+mysql实现的在线招聘系统(系统管理员/企业用户/学生 功能:招聘信息、投递简历、筛选简历、面试资料下载、就业信息、就业新闻、留言板等)
- linux7查看计划任务,CentOS7 计划任务
- 卡尔曼转矩观测_基于卡尔曼观测器的永磁同步电机自抗扰控制
- 51nod 2206 低买高卖codeforces867E Buy Low Sell High 贪心+优先队列
- 程序员「烂梗」大合集,看过3个以上的都是狠人 ......
- 电脑技巧:盘点10个非常实用且有趣的网站
- 低成本兼职创业,每个互联网人都需要知道的方法论
- BMP真彩色转256色