SQL中DATE和DATETIME类型不能直接作比较

如题,今天纠结了一天的问题。

在存储过程中定义了两个datetime类型的时间,然后把这个两个时间作为where条件中一个date字段between的两个时间段,结果无论如何都不执行。。。

就像  update table1 set col1=2 where date1 between datetime1 and datetime2 这种。

高人勿笑,小弟记个笔记而已,总结走的弯路 -- 类型兼容性问题

时间: 2024-08-05 19:36:02

SQL中DATE和DATETIME类型不能直接作比较的相关文章

SQL 中 Date 与Datetime的区别

Date是SQL Server 2008新引进的数据类型.它表示一个日子,不包含时间部分,可以表示的日期范围从公元元年1月1日到9999年12月31日.只需要3个字节的存储空间. DateTime 日期和时间部分,可以表示的日期范围从公元1753年1月1日00:00:00.000 到9999年12月31日23:59:59.997 ,精确到3.33毫秒,它需要8个字节的存储空间.

向数据库中插入一个DateTime类型的数据到一个Date类型的字段中,需要转换类型。TO_DATE('{0}','YYYY-MM-DD'))

需要指出的是,C#中有datetime类型,但是这个类型是包括小时,分钟,秒的.这个格式与数据库中的Date类型不符,如果将now设为datetime类型插入数据会失败. 需要通过TO_DATE('字段','YYYY-MM-DD'))转换.如下: string.Format("insert into tablename (TIME) values(TO_DATE('{0}','YYYY-MM-DD'))",now) 错误写法: string.Format("insert in

mybatis中Date和DateTime字段的插入

最近公司使用MyBatis3做数据持久层,在字段中有Date和DateTime类型,在插入数据时只要将实体的属性设置成Timestamp就会对应mysql的DateTime类型,Date会对应mysql的Date类型. 在MyBatis映射文件中要表明映射类型. <result column="modified_date" jdbcType="TIMESTAMP" property="modified_date" javaType=&quo

[SQL]躺着也中枪的datetime类型

写在前面 本来这个东西,我是不想在这里总结的,今天有初学者的朋友问我了,那就不得不说说了,你肯定也踩过这样的坑,没遇到,说明你运气好,编码习惯好.那还是言归正传吧.避免你中枪,还是扫一眼这篇文章吧. 一个例子 测试环境:sqlserver2012,vs2013 下面看一个简单的例子,例子非常简单,就不再写注释了.一个测试的数据表TB_UserInfo: 一个再简单不过的表,自增的id,用户名字,注册时间,从上图你也看到了,是允许为空的. 再弄一个简单的测试程序. 1 using System;

android java.util.Date和java.util.sql中Date的区别

1.将java.util.Date 转换为 java.sql.Date java.sql.Date sd; java.util.Date ud; //initialize the ud such as ud = new java.util.Date(); sd = new java.sql.Date(ud.getTime()); 2.若要插入到数据库并且相应的字段为Date类型 可使用PreparedStatement.setDate(int ,java.sql.Date)方法 其中的java.

sql server date,datetime,datetime2 和 time 简单介绍

Sql Server使用 Date表示日期,time表示时间,使用datetime和datetime2表示日期和时间. 1,秒的精度是指使用多少位小数表示1s: DateTime数据类型秒的精度是3,DateTime2和Time可以控制秒的精度, 语法是DateTime2(n)和time(n),n的取值范围是0-7,默认值是7. 2,DateTime数据类型 存储日期和时间,需要8个字节的固定存储空间,默认的数据格式是yyyy-MM-dd hh:mm:ss.xxx,表示从1753年1月1日到99

mysql中date和datetime的区别

date类型可用于需要一个日期而不需要时间的部分 格式为'YYYY-MM-DD'   范围是'1000-01-01' 到'9999-12-31' datetime类型可用于需要同时包含日期和时间的信息的值 格式为YYYY-MM-DD HH:mm:ss   范围是'1000-01-0100:00:00' 到 '9999-12-3123:59:59' 原文地址:https://www.cnblogs.com/z-x-y/p/12633106.html

python中date、datetime、string的相互转换

import datetime import time string转datetime str = '2012-11-19' date_time = datetime.datetime.strptime(str,'%Y-%m-%d') date_time datetime.datetime(2012,11,19,0,0) datetime转string date_time.strftime('%Y-%m-%d') '2012-11-19' datetime转时间戳 time_time = tim

mysql中date,datetime,timestamp数据类型区别

(1)date表示日期,其范围为1000-01-01到9999-12-31 (2)datetime表示日期时间,其范围是1000-01-01 00:00:00到9999-12-31 23:59:59 (3)timestamp表示时间戳,1970-01-01 00:00:00到2038-01-19 03:14:07,timestamp具有自动初始化和自动更新功能.