首页 > 其他分享 >trunc和date_trunc的区别

trunc和date_trunc的区别

时间:2023-06-22 20:44:06浏览次数:45  
标签:00 12 区别 09 2021 date trunc

总结

通过对两个函数的测试,发现有如下特点:

  • 针对的字段类型不同:trunc是针对date类型处理,date_trunc是针对time_stamp类型处理;如果输入的时候不是对应的类型,会自动用cast函数处理;
  • 参数的位置:trunc的参数在后面,date_trunc的参数在前面;
  • 仅从个人练习的情况看,trunc的用法比date_trunc少些,因为trunc到date级别,date_trunc到time_stamp级别,所以以后可以多用date_trunc和sub_str基本能够解决绝大部分需求;

trunc

测试结果:在spark_sql中只有到日期的位置可以用trunc函数,即输入可以是date、time_stamp类型,但是输出只能是date类型;

select trunc('2021-12-12 09:12:12', 'yyyy')
 
输出:2021-01-01
 
select trunc(cast('2021-12-12' as date), 'yy')
 
输出:2021-01-01
 
select trunc(cast('2021-12-12' as date), 'mm')
 
输出:2021-12-01
 
select trunc('2021-12-12 09:12:12', 'week')
 
输出:2021-12-06

date_trunc

用法:date_trunc(格式, 日期字段)

说明:返回该时间/日期对应的取断时间/日期,格式输入支持:'year','week','day','hour'等

示例:date_trunc('week', [下单时间]),返回该行"下单时间"字段对应的当周第一天

img

测试结果:在spark_sql中用date_trunc函数可以截取到任意位置(目前仅测试到秒,未测试微秒),然后让后面位置归为0等,且输入可以是date、time_stamp类型,但是输出time_stamp是型;

select date_trunc('year', cast('2021-12-12 09:32:05' as timestamp));
 
输出:2021-01-01 00:00:00
 
select date_trunc('mm', cast('2021-12-12 09:32:05' as timestamp));
 
输出:2021-12-01 00:00:00
 
select date_trunc('dd', cast('2021-12-12 09:32:05' as timestamp));
 
输出:2021-12-12 00:00:00
 
select date_trunc('week', cast('2021-12-12 09:32:05' as timestamp));
 
输出:2021-12-06 00:00:00
 
select date_trunc('hour', cast('2021-12-12 09:32:05' as timestamp));
 
输出:2021-12-12 09:00:00
 
select date_trunc('minute', cast('2021-12-12 09:32:05' as timestamp));
 
输出:2015-03-05 09:32:00
 
select date_trunc('second', cast('2021-12-12 09:32:05' as timestamp));
 
输出:2021-12-12 09:32:05
 
select date_trunc('minute','2021-12-12');
 
输出:2021-12-12 00:00:00

标签:00,12,区别,09,2021,date,trunc
From: https://www.cnblogs.com/javaxubo/p/17498295.html

相关文章

  • 深拷贝和浅拷贝的区别和与原理
    感谢参考文章:https://blog.csdn.net/weixin_45753447/article/details/124290929一、基本类型和引用类型string,number,boolean,null,undefined,symbolFunction,Array,Object基本类型是按值访问的,引用类型是按引用访问基本类型和引用类型也有人叫原始类型和对象类型,拥有......
  • QDateTime
    QDateTime #include<QDateTime> PublicFunctions QDateTime() QDateTime(constQDate&date) QDateTime(constQDate&date,constQTime&time,Qt::TimeSpec spec =Qt::LocalTime) QDateTime(constQDate&date,constQTime......
  • MySQL中str_to_date函数和cast函数
    MySQL怎么将字符串转为datetime类型?两种转换方法:1、使用str_to_date()函数,可以格式化字符串,根据指定格式将其转为日期时间值,语法“str_to_date(字符串值,转换格式)”。2、使用CAST()函数,可以将指定字符串值转换为datetime数据类型,语法“CAST(字符串值ASdatetime)”。MySQLDAT......
  • android:layout_gravity 和 android:gravity 的区别
    gravity这个英文单词是重心的意思,在这里就表示停靠位置的意思。android:layout_gravity和android:gravity的区别从名字上可以看到,android:gravity是对元素本身说的,元素本身的文本显示在什么地方靠着换个属性设置,不过不设置默认是在左侧的。android:layout_gravity是相对与它的......
  • java.lang.ClassCastException java.util.Date cannot be cast to java.sql.Date
    报错信息:java.lang.ClassCastException:java.util.Datecannotbecasttojava.sql.Date原因是:不要这样进行转换。具体转换看这里https://www.cnblogs.com/javaxubo/p/17498174.html......
  • java中java.util.Date和java.sql.Date之间的转换
    1、util.Date和sql.Date之间的关系我们来看下java.sql.Date的源码packagejava.sql;importjava.time.Instant;importjava.time.LocalDate;publicclassDateextendsjava.util.Date{}从以上源码可以看出,sql.Date是util.Date的子类2、util.Date的构造方法以下是ja......
  • xxx.opt-1.pyc、xxx.opt-2.pyc和xxx.pyc的区别
    在安装python后,我们会在它的安装目录下见到大量的类似xxx.opt-1.pyc、xxx.opt-2.pyc和xxx.pyc这样的文件。比如以下这样,那么它们之前有什么区别呢?expatreader.cpython-39.opt-1.pycexpatreader.cpython-39.opt-2.pycexpatreader.cpython-39.pyc这三个文件是Python解释器......
  • initWithNibName 和 loadNibNamed 的区别
    UIViewControllerinitWithNibName这时候是延迟加载主要代码如下:ShowViewController*showMessage=[[ShowViewControlleralloc]initWithNibName:@"ShowViewController"bundle:nil];self.showViewControllerrelease];这时候是延迟加载,这个View上的控件是nil的self.showVie......
  • Objective C中NULL、Nil、nil、NSNull 的区别
    NULLValuesThesemacrosdefinenullvaluesforclassesandinstances.NULL可以用在C语言的各种指针上#define__DARWIN_NULL#define__DARWIN_NULLConstantsc特有的,例子:int*pointerToInt=NULL;char*pointerToChar=NULL;structTreeNode*roo......
  • HTTP中GET与POST的区别
    1.相同点请求头的大部分内容相同,只有部分有所区别,都是用来访问服务器的方法。2.不同点  GET请求 POST请求参数传递方式 传参时将参数放于url后。请求和参数分开,参数作为独自携带的数据进行上传。 能否作为书签 url中有传递参数,可以作为书签保存。因为书......