Ⅰ sql日期赋值
create table #Test
(
times datetime not null ,
nexttime datetime not null
)
go
create proc prco_insertTime
(
@insertTime datetime
)
as
set nocount on
insert #Test (times,nexttime)--times,月初时间 nexttime 月末时间
select @insertTime,dateadd(day,-1,dateadd(mm,1, @insertTime))
go
exec prco_insertTime '2009-8-1 '
select * from #Test
declare @Test table
(
times datetime not null ,
nexttime datetime
)
declare @insertTime datetime
set @insertTime ='2009-8-1'
insert @Test (times)--times,月初时间 nexttime 月末时间
select @insertTime
update @Test set nexttime = dateadd(day,-1,dateadd(mm,1, times)) where times=@insertTime
select * from @Test
Ⅱ SQL 如何设置时间为0点到8点 设置为上一天时间 其余时间段 保存真实值
可以用case when 语句。
ORACLE写法如下(假设时间字段为dt):
SELECTCASEWHENdt-TRUNC(dt)between0and8/24thenTRUNC(dt)-1/24
ELSEdt
END
FROMTABLE
INSERT与UPDATE写法类似。
Ⅲ 求SQL大神给写一个按时间分段的SQL
你这个我觉得类似于,按月分组,按周 按年对数据进行分组,你应该使用系统函数对数据的日期先进性编辑,然后再group by
按月对数据分组的方法
看一下这个是否符合您的要求,如有疑问,及时沟通!
Ⅳ sql 时间段问题谢谢!
建数据库的时候就将日期字段设置为nvarchar,查询的时候将控件里面的值转换为字符串按照楼上的方法查询就可以了,在保存的时候将值格式化后再保档袜存到数据库,以后这样在表格里面日期显示的就会很整齐,行拍激比较美观一贺山些。
Ⅳ SQL语句时间段问题
SQL时间段查询 :
ACCESS
select * from table where date1<#2008-1-20# and date2>#2007-8-30#
MYSQL
select * from table where date1<'2008-1-20' and date2>'2007-3-30'
也可以 :
select * from table where date1 between '2008-1-20' and '2007-3-30'
其中date1,date2都是日期类型的字段。
SQL时间型查询语句:
2007年12月04日 星期二 13:54
select * from jy_jjgl a ,jy_jygl b where convert(varchar(10),a.shtime,120)='2007-11-27'
1.显示本月第一天
SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0)
select convert(datetime,convert(varchar(8),getdate(),
120)+'01',120)
2.显示本月最后一天
select dateadd(day,-1,convert(datetime,convert
(varchar(8),dateadd(month,1,getdate()),120)+'01',120))
SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+1,0))
3.上个月的最后一天
SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(mm,0,getdate()),0))
4.本月的第一个星期一i
select DATEADD(wk,DATEDIFF(wk,0, dateadd(dd,6-datepart(
day,getdate()),getdate())),0)
5.本年的第一天
SELECT DATEADD(yy,DATEDIFF(yy,0,getdate()),0)
6.本年的最后一天
SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate())+1,0))
7.去年的最后一天
SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate()),0))
8.本季度的第一天
SELECT DATEADD(qq,DATEDIFF(qq,0,getdate()),0)
9.本周的星期一
SELECT DATEADD(wk,DATEDIFF(wk,0,getdate()),0)
10.查询本月的记录
select * from tableName where DATEPART(mm, theDate)
=DATEPART(mm, GETDATE()) and DATEPART(yy, theDate)
= DATEPART(yy, GETDATE())
11.查询本周的记录
select * from tableName where DATEPART(wk, theDate) = DATEPART
(wk, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())
12查询本季的记录 注:其中:GETDATE()是获得系统时间的函数。
select * from tableName where DATEPART(qq, theDate) = DATEPART
(qq, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())
13.获取当月总天数:
select DATEDIFF(dd,getdate(),DATEADD
(mm, 1, getdate()))
select datediff(day,
dateadd(mm, datediff(mm,'',getdate()), ''),
dateadd(mm, datediff(mm,'',getdate()), '1900-02-01'))
14.获取当前为星期几
DATENAME(weekday, getdate())
Ⅵ SQL语句添加时间段
oracle下空陪的写法旅颤between to_date('2010-01-01','yyyy-mm-dd'斗镇蠢) and to_date('2010-10-10','yyyy-mm-dd')
Ⅶ sql 求连续时间段
根据给定时间为基准以2小时为划分,得出一天划分出的时间段
declare @time varchar(5)
set @time='11:13'
select ltrim(a.number)+right(@time,3) as [划分结果]
from master..spt_values a with(nolock),master..spt_values b with(nolock)
where a.type='P' and b.type='P'
and a.number>=left(@time,1) and b.number<=24
and a.number+1=b.number
试试这个语句
Ⅷ oracle的sql语句中如何写时间段
每天晚上6点到第二天早上8点的数据?
按照24小时制,那可以拆分为:18~24;1~8
试试这个:
select * from tbl c
where
( to_char(c.date, 'hh24:mi:ss') >= '18:00:00' and to_char(c.date, 'hh24:mi:ss') <= '24:00:00')
or
( to_char(c.date, 'hh24:mi:ss') >= '01:00:00' and to_char(c.date, 'hh24:mi:ss') <= '08:00:00')
Ⅸ sql 怎样获取 时间段
请问a表和b表有关联字段吗?如果有的话就:
select*from表a,表bwherea表关联字段=b表关联字段andb表时间字段between'2013-05-01'and'2013-05-30';
Ⅹ sql中,怎样在自增数列前面加上时间
alter table 表 add 列 int IDENTITY(1,1) NOT NULL 表指的是你要处理的那个表名称;列指你要添加的列名称;以上示例添加了一个数据类型为int型的列,自增序列号从1开始,每行增加量为1. 希望对你有所帮助!