oracle显示上午下午,Oracle实现使用时间函数实现输出“上午好/...

Oracle实现使用时间函数查询出‘“上午好/下午好”

描述:

最近在进行报表开发的时候,碰见一个需求,困扰了很久:用户需要定制一个欢迎页,当用户上午登录时,页面提示“xxx,上午好!”,当用户下午登录时,提示“xxx,下午好!”,看似简单的需求,在报表开发中却不容易实现。下面给大家整理一下要实现这种效果的各种方法。

实现方式1:直接使用Oracle的日期函数实现:

知识点1(两个内置日期函数):

–可以获取上午下午的方式1

–返回单位为毫秒的当前UTC时间(GMT+0)的时间戳。

select current_timestamp from dual;

返回日期格式:10-8月 -19 08.52.54.488652 下午 +08:00

–可以获取上午下午的方式2

–返回会话中的日期和时间,没有参数,没有括号

select localtimestamp from dual;

返回如期格式:10-8月 -19 08.53.23.875886 下午

知识点2(substr函数截取):

substr截取:

平时使用比较多,不过多介绍:

用法:select substr(字符串,起始位置,截取位数) from dual;

注意:如果要从后面往前面截取的话,将起始位置的数值换成负数就行;

所以最终实现的语句如下:

函数1:

select substr(current_timestamp,-9,2) from dual;

函数2:

select substr(localtimestamp,-2,2) from dual;

实现方式2:使用html实现“上午好/下午好/晚上好”

直接上代买:

js判断早上好,上午好,下午好,傍晚好,晚上好

now = new Date(),hour = now.getHours()

if(hour < 6){document.write("凌晨好!")}

else if (hour < 9){document.write("早上好!")}

else if (hour < 12){document.write("上午好!")}

else if (hour < 14){document.write("中午好!")}

else if (hour < 17){document.write("下午好!")}

else if (hour < 19){document.write("傍晚好!")}

else if (hour < 22){document.write("晚上好!")}

else {document.write("夜里好!")}

实现方式3:使用js实现“上午好/下午好/晚上好”

代码如下:

let getTimeState = () => {

// 获取当前时间

let timeNow = new Date();

// 获取当前小时

let hours = timeNow.getHours();

// 设置默认文字

let text = ``;

// 判断当前时间段

if (hours >= 0 && hours <= 10) {

text = `早上好`;

} else if (hours > 10 && hours <= 14) {

text = `中午好`;

} else if (hours > 14 && hours <= 18) {

text = `下午好`;

} else if (hours > 18 && hours <= 24) {

text = `晚上好`;

}

console.log(`hours >>>>>`, hours);

console.log(`text >>>>`, text);

// 返回当前时间段对应的状态

return text;

};

需要的时候使用即可

let textState=getTimeState()

总结:

在日常的开发过程中,一些需求可以通过各种方式实现,选择自己熟悉的或者适合你开发场景的就行,比如说报表开发过程中,使用sql语句能够实现的东西,就最好不过了。所以这个需求,我使用了第一个方式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值