能获取当前系统日期和时间的函数是

能获取当前系统日期和时间的函数是,第1张

SYSDATE函数可以得到目前系统的时间,所以答案是C例如:

select sysdate from dual;

SYSDATE函数常用的格式举例如下:

--加法

select sysdate,add_months(sysdate,12) from dual; --加1年

select sysdate,add_months(sysdate,1) from dual; --加1月

select sysdate,to_char(sysdate+7,'yyyy-mm-dd HH24:MI:SS') from dual; --加1星期

select sysdate,to_char(sysdate+1,'yyyy-mm-dd HH24:MI:SS') from dual; --加1天

select sysdate,to_char(sysdate+1/24,'yyyy-mm-dd HH24:MI:SS') from dual; --加1小时

select sysdate,to_char(sysdate+1/24/60,'yyyy-mm-dd HH24:MI:SS') from dual; --加1分钟

select sysdate,to_char(sysdate+1/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual; --加1秒

--减法

select sysdate,add_months(sysdate,-12) from dual; --减1年

select sysdate,add_months(sysdate,-1) from dual; --减1月

select sysdate,to_char(sysdate-7,'yyyy-mm-dd HH24:MI:SS') from dual; --减1星期

select sysdate,to_char(sysdate-1,'yyyy-mm-dd HH24:MI:SS') from dual; --减1天

select sysdate,to_char(sysdate-1/24,'yyyy-mm-dd HH24:MI:SS') from dual; --减1小时

select sysdate,to_char(sysdate-1/24/60,'yyyy-mm-dd HH24:MI:SS') from dual; --减1分钟

select sysdate,to_char(sysdate-1/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual; --减1秒

--举例:

--1、取得当前日期是本月的第几周

select to_char(sysdate,'YYYYMMDD W HH24:MI:SS') from dual;

select to_char(sysdate,'W') from dual;

--2、取得当前日期是一个星期中的第几天,星期日为第一天

select sysdate,to_char(sysdate,'D') from dual;

--类似:

select to_char(sysdate,'yyyy') from dual; --年

select to_char(sysdate,'Q' from dual; --季

select to_char(sysdate,'mm') from dual; --月

select to_char(sysdate,'dd') from dual; --日

--ddd 年中的第几天

--WW 年中的第几个星期

--W 该月中第几个星期

--D 周中的星期几

--hh 小时(12)

--hh24 小时(24)

--Mi 分

--ss 秒

--3、取当前日期是星期几,中文显示

select to_char(sysdate,'day') from dual;

--4、如果一个表在一个date类型的字段上面建立了索引,如何使用

alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'

--5、得到当前的日期

select sysdate from dual;

--6、得到当天凌晨0点0分0秒的日期

select trunc(sysdate) from dual;

-- 得到这天的最后一秒

select trunc(sysdate) + 099999 from dual;

-- 得到小时的具体数值

select trunc(sysdate) + 1/24 from dual;

select trunc(sysdate) + 7/24 from dual;

--7、得到明天凌晨0点0分0秒的日期

select trunc(sysdate+1) from dual;

select trunc(sysdate)+1 from dual;

--8、本月一日的日期

select trunc(sysdate,'mm') from dual;

--9、得到下月一日的日期

select trunc(add_months(sysdate,1),'mm') from dual;

--10、返回当前月的最后一天

select last_day(sysdate) from dual;

————————————————

版权声明:本文为CSDN博主「象在舞」的原创文章,遵循 CC 40 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:>

使用date命令加上合适的时间格式化字符串(+%s),会显示当前时间(或-d参数指定的时间)与1970-01-01 00:00:00相差的秒数(详细可以参考date的man手册)

所以基本想法就是使用date命令分别获取当前时间与文件修改时间的秒数,然后看这2个秒数之间是否有相差180秒以上。

获取当前时间比较简单,直接date +%s就ok了

下面看看如何获取文件时间

使用stat 命令后面跟一个文件名可以获取文件的状态,包括文件修改时间。其中文件修改时间会单独一行显示,格式如下:Modify: 2013-02-21 17:58:05404876407 +0800 (具体的精度可能系统不同略微有些差别,但大致格式是这样)

所以我们可以stat myfilename | grep Modify来获取文件的修改时间的信息,然后通过awk分别获取时间的日期和时间段

stat myfilename | grep Modify | awk '{print $2}'  #这句获取了日期段,即上面例子里面的2013-02-21

stat myfilename | grep Modify | awk '{split($3,var,"");print var[1]}' #这句获取了时间段,即上面例子里面的17:58:05,具体关于awk的使用可以参考awk的使用手册

那么现在可以获取文件修改时间与1970-01-01 00:00:00相差的描述了,就是date -d "$file_date $file_time" +%s

那么这个时间与当前时间想减的结果与180相比就可以知道是否满足条件了,满足条件的话就可以执行相应的命令。

参考代码如下:

current_datetime=`date +%s`

filedate=`stat tttxt | grep Modify | awk '{print $2}'`

filetime=`stat tttxt | grep Modify | awk '{split($3,var,"");print var[1]}'`

file_datetime=`date -d "$filedate $filetime" +%s

timedelta=`expr $current_datetime - $file_datetime`

if [ "$timedelta" -gt "180" ];then

echo "match condition"

fi

24小时,就是相差一天,所以变化的只有天数。

我这里提供一个笨方法:

用date获取当前日期和时间,格式化成你的文件命名格式,用下面的字符串截取方法获得天数:

${varible:n1:n2}:截取变量varible从n1到n2之间的字符串

天数减1后,重新组织成新的字符串。

用循环比较 ls 出来的文件名与这个字符串。

代码试过后再放上来。

头文件:#include <timeh>

定义函数:time_t time(time_t t);

函数说明:此函数会返回从公元 1970 年1 月1 日的UTC 时间从0 时0 分0 秒算起到现在所经过的秒数。如果t 并非空指针的话,此函数也会将返回值存到t 指针所指的内存。

返回值:成功则返回秒数,失败则返回((time_t)-1)值,错误原因存于errno 中。

范例

执行结果:

973E+08

以上就是关于能获取当前系统日期和时间的函数是全部的内容,包括:能获取当前系统日期和时间的函数是、如何在SHELL获取当天时间的月份和上个月的月份还有下个月的月份、Linux下用shell获取指定文件的最后修改时间并与系统时间比对,如果相差时间超过3分钟则执行另一个脚本等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9647581.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存