mysql中时间字段datetime怎么判断为空和不为空
一般为空都用null表示,所以一句sql语句就可以。
select * from 表名 where 日期字段 is null;
这里要注意null的用法,不可以用=null这样的形式表示。
相反,要取出不为空的数据,就是is true
select * from 表名 where 日期字段 is true;
mysql
是开源免费的关系型数据库,由于其是免费的,所以使用也是比较广泛的。
mysql
数据库的
空
分为两种:Null、
空
字符串本文将针对这些
空
演示如何
判断
是否
为空
,以及如何写sql过滤,包括使用判
空
函数。
import java.time.Local
DateTime
;
import java.time.format.
DateTime
Formatter;
import java.time.temporal.TemporalAdjusters;
public class Local
DateTime
Util {
* 比较 local
DateTime
2 是否在local
DateTime
1之前(比较大小)
* @param local
DateTime
1
* @param local
DateTime
2
* @return
public static Boolean compare(Local
DateTime
local
DateTime
1,Local
DateTime
local
DateTime
2){
return local
DateTime
1.isBefore(local
DateTime
2);
* 获取当前月份前/后的月份的第一天
* @param i 指定距离当前月份的
时间
* @param state 状态 0.当月 1.前 2.后
* @return
public static String firstDay(Integer state,Integer i){
Local
DateTime
date = null;
//type 类型 0.月 1.天 2.小时 3.分钟 4.秒
date = getLocal
DateTime
(state,0,i);
//获取该月份的第一天
String firstDay = date.with(TemporalAdjusters.firstDayOfMonth()).format(
DateTime
Formatter.ofPattern("yyyy-MM-dd"));
// System.out.println("第一天为:"+firstDay);
return firstDay;
* 获取当前月份前/后的月份的最后一天
* @param i 指定距离当前月份的
时间
* @param state 状态 0.当月 1.前 2.后
* @return
public static String lastDay(Integer state,Integer i){
Local
DateTime
date = null;
//type 类型 0.月 1.天 2.小时 3.分钟 4.秒
date = getLocal
DateTime
(state,0,i);
//获取该月份的最后一天
String lastDay = date.with(TemporalAdjusters.lastDayOfMonth()).format(
DateTime
Formatter.ofPattern("yyyy-MM-dd"));
// System.out.println("最后一天为:"+lastDay);
return lastDay;
* 获取当
时间
前/后的
时间
(天)
* @param i 指定距离当前月份的
时间
* @param state 状态 0.当月 1.前 2.后
* @return
public static String obtainDay(Integer state,Integer i){
Local
DateTime
date = null;
//type 类型 0.月 1.天 2.小时 3.分钟 4.秒
date = getLocal
DateTime
(state,1,i);
//获取天
String day = date.format(
DateTime
Formatter.ofPattern("yyyy-MM-dd"));
// System.out.println("获取的
时间
为(天):"+day);
return day;
* 获取当
时间
前/后的
时间
(小时)
* @param i 指定距离当前月份的
时间
* @param state 状态 0.当月 1.前 2.后
* @return
public static String obtainHours(Integer state,Integer i){
Local
DateTime
date = null;
//type 类型 0.月 1.天 2.小时 3.分钟 4.秒
date = getLocal
DateTime
(state,2,i);
//获取该月份的最后一天
String hours = date.format(
DateTime
Formatter.ofPattern("HH:mm:ss"));
// System.out.println("获取的
时间
为(小时):"+hours);
return hours;
* 获取当
时间
前/后的
时间
(小时)
* @param i 指定距离当前月份的
时间
* @param state 状态 0.当月 1.前 2.后
* @return
public static String obtainMinutes(Integer state,Integer i){
Local
DateTime
date = null;
//type 类型 0.月 1.天 2.小时 3.分钟 4.秒
date = getLocal
DateTime
(state,3,i);
//获取该月份的最后一天
String minutes = date.format(
DateTime
Formatter.ofPattern("HH:mm:ss"));
// System.out.println("获取的
时间
为(分钟):"+minutes);
return minutes;
* 获取当
时间
前/后的
时间
(小时)
* @param i 指定距离当前月份的
时间
* @param state 状态 0.当月 1.前 2.后
* @return
public static String obtainSeconds(Integer state,Integer i){
Local
DateTime
date = null;
//type 类型 0.月 1.天 2.小时 3.分钟 4.秒
date = getLocal
DateTime
(state,4,i);
//获取该月份的最后一天
String seconds = date.format(
DateTime
Formatter.ofPattern("HH:mm:ss"));
// System.out.println("获取的
时间
为(秒):"+seconds);
return seconds;
public static void main(String[] args) {
System.out.println("当前
时间
为:"+Local
DateTime
.now().format(
DateTime
Formatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
System.out.println("前一个月份的第一天为:"+Local
DateTime
Util.firstDay(1,1));
System.out.println("前一个月份的最后一天为:"+Local
DateTime
Util.lastDay(1,1));
System.out.println("当前
时间
的前一天为:"+Local
DateTime
Util.obtainDay(1,1));
System.out.println("当前
时间
的后一天为:"+Local
DateTime
Util.obtainDay(2,1));
System.out.println("当前
时间
的前一小时为:"+Local
DateTime
Util.obtainHours(1,1));
System.out.println("当前
时间
的后一小时为:"+Local
DateTime
Util.obtainHours(2,1));
System.out.println("当前
时间
的前一分钟为:"+Local
DateTime
Util.obtainMinutes(1,1));
System.out.println("当前
时间
的后一分钟为:"+Local
DateTime
Util.obtainMinutes(2,1));
System.out.println("当前
时间
的前一秒为:"+Local
DateTime
Util.obtainSeconds(1,1));
System.out.println("当前
时间
的后一秒为:"+Local
DateTime
Util.obtainSeconds(2,1));
private static Local
DateTime
getLocal
DateTime
(Integer state,Integer type,Integer i) {
Local
DateTime
date;
if(state == 0){
date = Local
DateTime
.now();
}else if(state == 1){
if(type == 0) { //获取月
date = Local
DateTime
.now().minusMonths(i);
}else if(type == 1){ //获取天
date = Local
DateTime
.now().minusDays(i);
}else if(type == 2){ //获取小时
date = Local
DateTime
.now().minusHours(i);
}else if(type == 3){ //获取分钟
date = Local
DateTime
.now().minusMinutes(i);
进行
中
一共有以下几种情况:
1.开始
时间
为空
,结束
时间
为空
, 此结果数据将永远为进行
中
的数据
2.开始
时间
为空
,结束
时间
不
为空
,则当前
时间
在结束
时间
之前,为进行
中
的数据
3.开始
时间
不
为空
,结束
时间
为空
,则当前
时间
在开始
时间
之后,为进行
中
的数据
4.开始
时间
不
为空
,结束
时间
不
为空
,则当前
时间
在开始与结束
时间
段之内的数据为进行
中
数据
下面sql则查询的是满足以上四种需求的结果集,达标题需求
SELECT * FROM
WHERE 1=1
and(start_time i
1.1 select()
select()方法查找没有主键的表,或者通过非主键
字段
进行查找,返回的是DataRow的数组
DataRow[] dr=dtbSource.Select("Title Like 'Production' ");
1.2 find()
1、单一主键
sql
中
查询当天
时间
和
判断
参数
为空
的坑根据
时间
查询的时候,如何查询当天
Mysql
将参数为0的数,也归纳到 ' '
中
:# 实例:
根据
时间
查询的时候,如何查询当天
查询当天
时间
内的数据时,需要注意的是,sql语句查询的是零点到零点的整数查询,如果要查询当天的
时间
也就是一月一号到一月一号的时候,需要在
时间
后加上date_add(#{paramIssue.endTime},interval 1 day),在零点的基础上加上一天的
时间
:
##如同下面实例:
当用户以当天
时间
为条件进行查询的时候,在sql的
时间