最近写项目时,函数需要在sql语句中获取当前时间,所以下面文章主要介绍sql获取当前时间的相关信息以及SQL的比较时间。通过示例代码介绍的非常详细,有需要的朋友可以参考一下。
: 目录
1.MySQL 2。Oracle比较字符串类型的时间概要
1. MySQL
1) MySQL提供了NOW()函数来获取当前日期和时间。NOW () sweat、SYSDATE()和CURRENT_TIMESTAMP()的别名如下:
SELECT NOW(),SYSDATE(),CURRENT_TIMESTAMP
2)如果想获得不包含时间部分的当前日期,可以使用CURDATE()函数,该函数也有别名,比如CURRENT_DATE。如下所示:
SELECT CURDATE(),当前日期
3)如果想获得不带日期部分的当前时间,可以使用CURTIME()函数,该函数也有CURRENT_TIME等别名。
SELECT CURTIME(),当前时间
2.Oracle
Oracle中没有获取当前日期和时间的函数,但是我们可以查询系统表DUAL中SYSTIMESTAMP的值来获取当前时间戳。如下所示:
从DUAL中选择SYSTIMESTAMP
类似地,我们可以在系统表DUAL中查询SYSDATE的值,以获得当前的日期和时间。如下所示:
从DUAL中选择SYSDATE
同样,Oracle中也没有特殊的函数来获取当前的日期和时间,但是我们可以处理SYSDATE的值。这里需要用到TO_CHAR()函数,后面章节会详细介绍。这里,我们只介绍它在数据处理中的应用。
使用TO_CHAR(时间日期值, YYYY-MM-DD )获取日期时间值的日期部分,因此以下SQL语句可以获取当前日期值:
SELECT TO_CHAR(SYSDATE, YYYY-MM-DD) FROM DUAL
使用TO_CHAR(时间日期值, HH24:MI:SS )获取日期时间值的时间部分,因此以下SQL语句可以获取当前时间值:
从DUAL中选择TO_CHAR(SYSDATE, HH24:MI:SS )
比较字符串类型的时间大小
数据库中的时间为varchar类型,MySql使用CURDATE()获取当前日期,SqlServer使用GETDATE()获取当前日期。
1.直接使用字符串进行比较
注意:确保两个数据类型完全相同,否则将是异常。
比如A: 2016-09-01 ,如果B的数据是: 2016-09-02 ,那么就无法进行比较。
2.通过类型转换函数convert(),
注意:确保字符串的时间值正确,否则会异常。
比如“2016年2月30日”,2月没有30日,所以转换时会出现异常。
CONVERT(数据类型[长度],表达式[,样式])
1)data_type是SQL Server系统定义的数据类型,这里不能使用自定义数据类型。
2)length用于指定数据的长度。默认值为30。
3)使用CONVERT()函数的样式选项可以用不同的格式显示日期和时间。当DATATIME和SMALLDATETIME的数据被转换为字符串时。
所选择的转换样式号由SQL Server系统提供,不同的样式号有不同的输出格式。如果以这种方式判断某个字段,
那么存储日期字段的字符串格式应该是只要能让sql server完成日期转换就行,不必像第一种方法那么严格。
或添加日期字段。比如比较是否大于当前日期,可以这样写:where (convert (varchar,adddate)=convert (varchar,getdate())。
Select convert (varchar (10),getdate(),120)-获取当前日期。
Select convert (date,getdate(),110)-获取当前日期。
Select convert (datetime,getdate(),110)-获取当前时间和日期。
Select convert (varchar (50),getdate(),108)-获取当前时间。
我的应用场景:
select * from jy_card其中(SELECT CURDATE()) end_date和end_date不为空
总结
这就是这篇关于sql获取当前时间和sql比较时间的文章。有关SQL获取当前时间的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!