to_char()函数和to_date()函数
to_char()函数
1: select count(*) from logisticsdata_2022 where to_char(receivedate,'yyyy-MM-dd') like '%2022-04%'
to_date()函数
to_char()函数
1: select count(*) from logisticsdata_2022 where to_char(receivedate,'yyyy-MM-dd') like '%2022-04%'
to_date()函数
技术原理:
date_trunc() 截断日期函数,完成定时时间语法
实现案例:
select to_char(date_trunc('quarter',add_date),'yyyy-MM') quarter from dr_information group by date_trunc('quarter',add_date) order by quarter desc
select date_trunc('month',now()) +interval '12 h';
//每月1号 12点
select date_trunc('month',now()) + interval '15 d 9 h 30 min';
//每月15号9点半
select date_trunc('day',now()) + interval '9 h';
//每天9点
select date_trunc('day',now()) + interval '7 d';
//每周的今天
select date_trunc('weak',now()) + interval '1d 1minute';
//每周的周二第一分钟
select date_trunc('h',now()) + interval '30 minute';
//每小时
select date_trunc('minute',now()) + interval '30 second';
//每分钟
select date_trunc('minute',now()) + interval '30 minute 30 second';
//每30分钟
select date_trunc('quarter',now()) + interval '15 d 15 h 15 minute 30 second';
//本季度的第15天,15小时 15分 30秒
select date_trunc('quarter',now() ) - interval '1 h';
//每个季度最后一天的晚上11点
select date_trunc('quarter',now() + interval '3 month') - interval '1 h';
//每个季度的最后一天的晚上的11点(从下个季度开始算起)
select id, count() from table a where 1=1 group by id having count()>2
工作中遇到的场景,这里写个例子出来,实际应用比此处更为健壮和完善
应用场景:
对一张表10万条数据(或100万或1亿+)进行更新操作或写入操作;
菜鸟是一条一条的执行吧,这显然不行啊
我在实际项目中是这样应用的, 批量更新!当然这显然是不够的 要线程批量更新才对吧!
float: 10^38 1e+38
float:单精度类型,精度是8位有效数字,取值范围是10的-38次方到10的38次方,float占用4个字节的存储空间。
也就是说(1的后面38个零)
double:双精度类型,精度是17位有效数字,取值范围是10的-308次方到10的308次方,double占用8个字节的存储空间
也就是说(1的后面308个零)
网友1:
一般情况下float即可以满足实数计算要求,当你的精度要求非常小的时候,比如1e-6的时候就可以考虑用double了,float和double主要的区别就是精度问题
网友2:
类型 符号位 阶码 尾数 长度
float 1 8 23 32
double 1 11 52 64
double 和 float 的区别是 double 精度高,有效数字 16 位,float 精度 7 位。但 double 消耗内存是 float 的两倍,double 的运算速度比 float 慢得多,能用单精度时不要用双精度(以省内存,加快运算速度)。
#include <iostream>
using namespace std;
int main()
{
float a=12.257902012398877;
double b=12.257902012398877;
const float PI=3.1415926; // 常量定义
cout<<setprecision(15)<<a<<endl; // 只有6-7位有效数字,后面的就不精确
cout<<setprecision(15)<<b<<endl; // 有15-16位有效数字,所以完全正确
cout<<setprecision(15)<<PI<<endl;
return 0;