不能用两个字符串比较的小的方法来做。例如:‘2010-10-20’ > ‘2010-12-15’
正解:都是 , 后面的时间- 前面的时间
mysql
select count(*) from table where timestampdiff(hour,'2008-08-08 12:00:00','2008-08-08 00:00:00') > 0
server sql
select count(*) from table where DATEDIFF([second], '2004-09-18 00:00:18', '2004-09-18 00:00:19') > 0
1. 因此必须用sql 的时间函数和字符串转化进行比较。
对于mysql:
(1) 如果数据库表中的字段是日期格式的
select name,cdate from user where DATEDIFF('2010-1-10' , sysdate()) > 0
也可以用(这里会自动的将字符串转化成日期格式然后想减,返回天数,前减后,小于0说明前面的日期小):
select name,cdate from user where DATEDIFF('2010-1-10' ,'2010-1-11') ;
可以不用日期和字符串函数的转化就可以了。
msql的转换函数:CAST('2010-10-10' AS DATE)
BINARY,CHAR,DATE,TIME,DATETIME,SIGNED,UNSIGNED
示例:
SELECT CAST(NOW() AS SIGNED INTEGER),CURDATE()+0;
SELECT 'f'=BINARY 'F','f'=CAST('F' AS BINARY);
mysql返回两个时间的秒的格式为:
select DATEDIFF('2010-1-10' ,'2010-1-11');
select unix_timestamp('2008-1-1 11:20:50') - unix_timestamp('2008-1-1 12:10:20');
select timestampdiff(hour,'2008-08-08 12:00:00','2008-08-08 00:00:00');
select timestampdiff(second,'2008-08-01','2008-08-08');
(2) 如果数据库表中的字段是字符格式的
如果上面的可以自动的转换的话我们就没有必要谈是字符格式的问题了。
对于SQL:
server sql相对来说就比较宽泛一些了可以得到相差的时间精确到秒了。(无所谓字符还是时间格式了)
SELECT DATEDIFF([year], GETDATE(), '2004-09-18') 返回值:-6 ,说明是后减前 与mysql相反的。
select datediff(day,getdate(),'2004-09-18')
SELECT DATEDIFF([hour], '2004-09-01', '2004-09-18')
SELECT DATEDIFF([second], '2004-09-18 00:00:18', '2004-09-18 00:00:19')
分享到:
相关推荐
Oracle_Mysql_Sqlserver字段类型转换参考Oracle_Mysql_Sqlserver字段类型转换参考Oracle_Mysql_Sqlserver字段类型转换参考Oracle_Mysql_Sqlserver字段类型转换参考Oracle_Mysql_Sqlserver字段类型转换参考Oracle_...
一个完整的字段包括字段名、数据类型和约束条件。MySQL 添加字段的语法格式如下: ALTER TABLE <表名> ADD <新字段名><数据类型>[约束条件]; 对语法格式的说明如下: <表名> 为数据表的名字; <新字段名> 为所要...
1.表中有id和name 两个字段,查询出name重复的所有数据 select * from xi a where (a.username) in (select username from xi group by username having count(*) > 1) 2、查询出所有数据进行分组之后,和重复数据...
MySQL SQL高级特性 字段约束-索引-视图-外键学习实践,很不错
一、问题: 数据库是MS SQLServer2000,要把SQLServer2000里的一张表的数据导入MySQL5,其中SQLServer2000表的字段以简体中文命名(强烈建议不要以中文做为字段名)。其实操作就是对SQLServer查询记录,插入到MySQL里...
在使用mysql的过程中,有个问题就是mysql的优化,mysql中longblob字段在5.5版本中默认的为1M。 想改变这个问题,需要注意几点: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (2054817 > ...
sql语句:按照某一个字段进行去重后获取全部字段。
例如:班级和学习的关系,我想很直观的看到班级和学生的情况,列表显示出班级的信息和班级的男生女生姓名,通过关联查询肯定是无法实现的. 解决方式 1首先我们了解上述相关使用场景之后,结合相关如下相关示例 单个列表...
MySQL中,如何使用SQL语句来对表中某一个字段进行重命名呢?我们将使用alter table 这一SQL语句。 重命名字段的语法为:alter table <表名> change <字段名> <字段新名称> <字段的类型>。 现在我们来...
在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是...
经典的SQL查询,将内容作为字段查询,包含图片和SQL语句,很简单
手机号码归属MySQL数据库SQL文件(14M): 导出命令: mysqldump -uroot -p123456 test t_mobilephone_number > /root/mobilephoneNumber.sql 手机号码段:13*;15*;145、147、186、187、188、189 包含记录数:...
在mysql数据库中,有一个datetime类型的字段用于存储记录的日期时间值。python程序中有对应的一个datetime变量dt。 现在需要往mysql数据库中添加记录,每次添加时,将datetime型变量dt写入mysql数据库tablename表中...
mysql 查询表中多少个字段
一、问题发现与分析 ...经过对比:sqoop在转换MySQL的datatime字段类型为hive的string时会出现问题:默认先转为对应时间戳,再转换为北京市区时间,就会使时间多8小时。 解决办法有两个: 1、在sql里将时间字段转换为
SQL语句处理字段前的0,字段有的0不限长度。
解决截取问题的思路必须符合业务逻辑和字段的排列逻辑,考虑必须长远,脚本类的代码如果只是简单的学习,可以通过事务控制,防止误删数据,查询语句比较复杂的可以考虑分层查询,并减少GROUP BY的使用来提高SQL执行...
数据库和表的创建与管理 表的字段类型 课程目标 掌握 —— 不同数据类型的选择。 理解 —— MySQL支持的数据类型;...每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使
SQL数据库不支持limit语法,利用逻辑处理函数模拟出来的思路,具体可照此改造。
3.可以对源字段和目的字段进行映射,可以避免自动编码类的字段. 4.可以设置调度,类似于 SQL Server 的导入导出 5.每个任务的所有设置都保存在一个dst的配置文件里,数据库连接密码 进行加密。加密过程是自己写的。...