sql日期like
‘壹’ 关于sql模糊查询日期时间的方法
1、Convert转成String,在用Like查询。
select*fromtable1 whereconvert(varchar,yourtime,120) like '2017-06-30%'
2、Between
select*fromtable1whereyourtime between '2017-06-30 0:00:00' and '2017-06-30 24:59:59'";
3、datediff()函数
select*fromtable1 wheredatediff(day,yourtime,'2017-06-30')=0
(1)sql日期like扩展阅读
表达式DateDiff(timeinterval,date1,date2 [, firstdayofweek [, firstweekofyear]])
允许数据类型: timeinterval 表示相隔时间的类型,代码为:
年份 yy、yyyy 季度 qq、q
月份 mm、m
每年的某一日 dy、y
日期 dd、d
星期 wk、ww
工作日 dw
小时 hh
分钟 mi、n
秒 ss、s
毫秒 ms
‘贰’ 在SQL里,DATETIME类型的数据可以使用LIKE来查询吗
你可以这样使用
SELECT * from table WHERE convert(varchar(50),DATAGETTIME) LIKE '2008-9-15%'
就是先用convert函数把虚坦DATETIME格州渣式册誉悄的数据转换成varchar格式,然后就可以用like了。
‘叁’ sqlserver ,用like ‘日期' 查询
查询某一个时间范围内的日期,应该用 BETWEEN AND
或者 > .. AND < ...
因为BETWEEN AND是取闭区间的,所以上面的代码可以改成
select * from schele where begintime >= '2007-12-19' and begintime < '2007-12-20'
如果楼主一定坚持要用LIKE查询,可以参考下面的方法:
select * from schele where convert( varchar(32), begintime, 20 ) LIKE '2007-12-20%'
其中对 convert 不理解,可以参考 T-SQL语法
第3个参数值为20,代表ODBC 规范的yyyy-mm-dd hh:mm:ss(24h)
‘肆’ 关于SQL模糊查询日期时间的方法
有以下三种方法:
1、Convert转成String,在用Like查询
select * from table1 where convert(varchar,yourtime,120) like '2017-06-30%'
2、Between
select * from table1 where yourtime between '2017-06-30 0:00:00' and '2017-06-30 24:59:59'";
3、datediff()函数
select * from table1 where datediff(day,yourtime,'2017-06-30')=0
(4)sql日期like扩展阅读:
滚与上述日期格式的like模糊查询的注意事项
1、select * from T where sendTime like '%2007_12_%' 可以查询2007年12月的所有记录
如果like条件改为'%2007-12-%' ,'%2007_12_3%' ,或'%2007_12_30%' 都查不出数据。
2、select * from T where sendTime like '%12_30%' 可以查询12月30日的所有记录
如果like条件改为'%07_12_30%' 也查不出数据。
‘伍’ SQL 用Like 模糊查询时间
where d.fBeginTime between '2006-11-09' and dateadd(d,1,'2006-11-09')
‘陆’ sql日期的模糊(like)查询,字断内日期的格式为yyyy-m-d,针对1日与10几日,2日与20几日怎么区分
SQL Server CONVERT() 函数
SQL Server Date 函数
定义和用法
CONVERT() 函数是把日期转换为新数据类型的通用函数。
CONVERT() 函数可以用不同的格式显示日期/时间数据。
语法
CONVERT(data_type(length),data_to_be_converted,style)data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。
可以使用的 style 值:
Style ID Style 格式
100 或者 0 mon dd yyyy hh:miAM (或者 PM)
101 mm/dd/yy
102 yy.mm.dd
103 dd/mm/yy
104 dd.mm.yy
105 dd-mm-yy
106 dd mon yy
107 Mon dd, yy
108 hh:mm:ss
109 或者 9 mon dd yyyy hh:mi:ss:mmmAM(或者 PM)
110 mm-dd-yy
111 yy/mm/dd
112 yymmdd
113 或者 13 dd mon yyyy hh:mm:ss:mmm(24h)
114 hh:mi:ss:mmm(24h)
120 或者 20 yyyy-mm-dd hh:mi:ss(24h)
121 或者 21 yyyy-mm-dd hh:mi:ss.mmm(24h)
126 yyyy-mm-ddThh:mm:ss.mmm(没有空格)
130 dd mon yyyy hh:mi:ss:mmmAM
131 dd/mm/yy hh:mi:ss:mmmAM
实例
下面的脚本使用 CONVERT() 函数来显示不同的格式。我们将使用 GETDATE() 函数来获得当前的日期/时间:
CONVERT(VARCHAR(19),GETDATE())
CONVERT(VARCHAR(10),GETDATE(),110)
CONVERT(VARCHAR(11),GETDATE(),106)
CONVERT(VARCHAR(24),GETDATE(),113)
结果类似:
Dec 29 2008 11:45 PM
12-29-2008
29 Dec 08
29 Dec 2008 16:25:46.635
用121转换一下,就是中国人习惯的格式了,且3月是03,不出现位数不同的问题,呵呵
‘柒’ SQL里怎么用Like搜时间字段
先把日期转换成字符串
select * from test1
where to_char(age) like '%2017-01-16%'
‘捌’ sql server 2000,like 时间字段 的请教
like是字符串模糊匹配的关键字。
你的字段是日期类型还是字符串类型?如果是日期型,那是肯定无法得到结果的。
如果一定要使用Like,可以先把日期转成字符串,在使用。
如果祥察不使用like,可以把2011-1-1分别得到这天的开始和结束的两个时间,一个是0点,察脊一个是23点59分59秒,然后使用between and语法。
不管怎么做,转化类型是一定的。
select * from table where convert(varchar(50), op_date, 120) like '败宴渗2011-1-1%'
或者
select * from table where op_date between convert(datetime, '2011-1-1', 120) and convert(datetime, '2011-1-1 23:59:59', 120)
‘玖’ 在SQL里,DATETIME类型的数据可以使用LIKE来查询吗
你可以这样使用
SELECT
*
from
table
WHERE
convert(varchar(50),DATAGETTIME)
LIKE
'2008-9-15%'
就是先用convert函数把DATETIME格式的
数据转换
成varchar格式,然后就可以用like了。
‘拾’ sql like查询时间问题
select * from tab where Convert(varchar(20),cdatetime,120) like '2010-03-19%'