当前位置:首页 » 编程语言 » sqldatetime查询

sqldatetime查询

发布时间: 2022-06-12 02:53:40

1. sql中datetime查询出现问题是怎么处理

SQL 中使用 convert函数来格式化datetime的显示格式。

语法

CONVERT(data_type(length),data_to_be_converted,style)

data_type(length)规定目标数据类型(带有可选的长度)。data_to_be_converted含有需要转换的值。style规定日期/时间的输出格式。

可以使用的style值:

2. sqlserver的datetime查询

sql的datetime查询使用
convert函数格式化输出格式
convert函数语法:
CONVERT(data_type(length),data_to_be_converted,style)
data_type(length)规定目标数据类型(带有可选的长度)。data_to_be_converted含有需要转换的值。style规定日期/时间的输出格式。
可以使用的style值如图:
例:

3. sql数据库里datetime类型怎么查询

用CONVERT()
函数阿。
函数语法:CONVERT(data_type(length),data_to_be_converted,style)
假设你输入的key值是yymmdd这样的格式,那么你可以这样写:
select
*
from
news
where
convert(VARCHAR(100),infotime,112)
like
'%"&
key
&"%'
order
by
id
desc
如果输入的key是其它格式,那么style要改,网上有对应表,你可以去查

4. 如何从sql server数据库中查询datetime类型的数据详细些!!!

这是查询与当前时间在同一周内的数据,sql语句是:
select * from 表 where datediff(week,时间字段,getdate())=0

也可以稍作修改用来查询与指定日期在同一周内的数据:
select * from 表 where datediff(week,时间字段,'2002-01-01')=0
像你的这个表,查询一段时间(需要指定前后日期的)
select * from 表 where startdate between 指定日期 and 指定日期
select * from 表 where leavedate between 指定日期 and 指定日期
查询一段时间( 不需要固定时间的,只需要前后间隔时间的)
select * from 表 where datediff(day,startdate,leavedate)<7 and startdate = 指定日期select * from 表 where datediff(day,startdate,leavedate)<7 and leavedate = 指定日期
这是查询此日期开始时间到离开时间在七天之间的所有数据,后面的and部分按需要加。

5. sql怎么查询datetime

SELECT COUNT(*)/datediff(hour,'2009-06-15 00:00:00','2009-06-28 00:00:00')
from a
where b >= '2009-06-15 00:00:00'and b <= '2009-06-28 00:00:00'

如上是查询6月15日到28日期间,平均每小时记录的数据数目

datediff(hour,'2009-06-15 00:00:00','2009-06-28 00:00:00' --取得日期区间的小时数

------------------------------------------
哦,是我读题不仔细唉,呵呵。
这样的话就复杂了。
你不急的话我明天有空写个预存程序来解决这个问题

------------------------------------------
1.先建立日期时间构造预存程序,用来传回作时间段查询的两个时间
create PROC [dbo].[sp_fordate]
@year char(4),
@month char(2),
@day char(2),
@hour char(2),
@date1 varchar(12) output,
@date2 char(20) output,
@date3 char(20) output
as
begin
set @date1 = @year + '-' + ltrim(rtrim(@month)) + '-' +rtrim(@day)
set @date2 = @date1 + space(1) + ltrim(rtrim(@hour)) + ':00:00'
set @hour = @hour +1
set @date3 = @date1 + space(1) + ltrim(rtrim(@hour)) + ':00:00'
set @hour = @hour -1
set @date1 = @date1 + '-'+ @hour
end

2.在这一个预存程序里用循环跑出一个用union关联的超长sql语句执行。需要传入四个值,年份(2009四位格式),月份,日期(若日期传入为空自动取1),小时(输入1表示1点到2点时段,以此类推)

create proc riqi
@year char(4),
@month char(2),
@day char(2),
@hour char(2)
as
BEGIN
declare @SQL varChar(4000)
if @day is null or @day = ''
begin
set @day = 1
end
declare @date1 char(12)
declare @date2 char(20)
declare @date3 char(20)
exec sp_fordate @year,@month,@day,@hour,@date1 output,@date2 output,@date3 output
set @sql = 'select count(*) as 数目, '''+ @date1 + ''' as 日期时间 from a where b >= ''' + @date2 + '''' + ' and b<= ''' + @date3 + ''''
set @day = @day + 1
while @day <= 31
BEGIN
exec sp_fordate @year,@month,@day,@hour,@date1 output,@date2 output,@date3 output
set @sql = @sql +char(10)+char(13)+ ' union all ' +char(10)+char(13)+ 'select count(*), '''+ @date1 + ''' from a where b >= ''' + @date2 + '''' + ' and b<= ''' + @date3 + ''''
set @day = @day + 1
print @day
if @@error <> ''
BEGIN
break
END
ELSE
CONTINUE
END
exec(@sql)
END

测试结果如下

数目 日期时间
----------- ------------
3 2009-10-1-1
2 2009-10-2-1
1 2009-10-3-1

最后的-1表示时间段是一点

唉,只想到这个笨办法唉

6. 如何查询sql数据库中的datetime的某一年的记录

select
sum(收入),sum(支出)
from
表名
where
year(日期)=2013
year函数就是获取datetime的年份

7. sql server怎么按时间查询datetime

sql server 中,
可以用cast()函数将日期时间转换为日期,

比如:cast('2014-01-22 13:22:35.000' as date) 的结果为2014-01-22
以下语句是查询2012年的数据,日期范围可以修改
select * 表名
where CAST(时间字段 as date) between '2012-01-01' and '2012-12-31'

如果要查全年数据,也可以这样,
select * 表名 where year(时间字段)=2012

另外,用convert()函数也可以将日期时间字段转换为日期字段来代替cast,具体用法一下

如果是oracle数据库请用to_date()代替cast将日期时间字段转换为日期来查询

8. sql server中datetime类型如何只输入日期将信息查询出来

尝试下模糊匹配或者用日期区间查询

1.select * from yourtable

where FSaveDate like '2012-12-06%'
2.selet * from yourtable
where FSaveDate between '2012-12-06' and '2012-12-07'

9. SQL 如何查询日期在一定范围内的数据

select * from 表 where 日期字段>='开始日期' and 日期字段<='截止日期' and convert(char(8),日期字段,108)>='开始时间' and convert(char(8),日期字段,108)<='截止时间'。

SELECT * FROM 表明 WHERE 日期字段名 BETWEEN '20130101' AND '20130130'。

例如:

select * from tb1 where dDate>='2010-11-05' and dDate<='2010-11-15'
and convert(char(8),dDate,108)>='8:00:00' and convert(char(8),dDate,108)<='9:00:00'.

select * from table1where year(d)=2010 and month(d)=7 and day(d) between 1 and 31
and (Datepart(hour,d)>=22 or Datepart(hour,d)<6)

(9)sqldatetime查询扩展阅读:

SQL查询日期:

今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0

昨天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=1

7天内的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())<=7

30天内的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())<=30

本月的所有数据:select * from 表名 where DateDiff(mm,datetime类型字段,getdate())=0

本年的所有数据:select * from 表名 where DateDiff(yy,datetime类型字段,getdate())=0

参考资料:SQL_网络

10. 在sql server中,记录日期的字段是datetime类型,请问怎么查询一天的数据

select * from info where dateTime>'2001-12-01 00:00:00' and dateTime<'2001-12-01 23:59:59'

这样写错不了,昨天我还在用,DateTime为字段名

当然,你报错的原因很可能是将最大时间写成59的缘故,最到23点而不是59点

热点内容
怎样删除小视频文件夹 发布:2024-05-19 05:49:29 浏览:589
开启php短标签 发布:2024-05-19 05:44:12 浏览:473
android各国语言 发布:2024-05-19 05:42:54 浏览:247
微信什么资料都没怎么找回密码 发布:2024-05-19 05:35:34 浏览:907
填志愿密码是什么 发布:2024-05-19 05:30:23 浏览:318
城堡争霸自动掠夺脚本 发布:2024-05-19 05:22:06 浏览:204
asp编程工具 发布:2024-05-19 05:20:36 浏览:143
insertpython 发布:2024-05-19 05:12:26 浏览:244
androidant编译 发布:2024-05-19 05:04:11 浏览:988
按键脚本优化 发布:2024-05-19 04:59:57 浏览:752