各位大师现遇到一个操作时间的问题.
数据库中我有一个时间的字段.我通过排序取出最近的时间后我要对取出来的这个时间进行向前推 2个小时我要查询出 我取到的时间 到 2个小时前的内容.请问怎么推2小时前的那个 时间呢.
例如我取到的时间为 time1= "2010-4-4 15:27:49"
我想要的向前推2小时后的时间应该为 time2= "2010-4-4 13:27:49"
这里我说一点.我们可以不去考虑到秒.只考虑到分就行了. 我最后要取 内容为 string strSql="select XXXX from test where intime between time1 and time2" 这样一来我就能求到我所需要的数据了.请各位大师帮忙怎么取到 time2的时间呢.我有tiem1的时间.tiem1 向前推2个小时的tiem2的时间怎么求. 急急急急急...
dateadd(hour,1,getdate())
时间差DateDiff
具体参看:http://msdn.microsoft.com/zh-cn/library/ms186819.aspxDATEADD (Transact-SQL)将指定 number 时间间隔(有符号整数)与指定 date 的指定 datepart 相加后,返回该 date。有关所有 Transact-SQL 日期和时间数据类型及函数的概述,请参阅日期和时间数据类型及函数 (Transact-SQL)。有关日期和时间数据类型及函数共有的信息和示例,请参阅使用日期和时间数据。Transact-SQL 语法约定语法
--------------------------------------------------------------------------------复制
DATEADD (datepart , number, date )
参数
--------------------------------------------------------------------------------datepart
是与 integernumber 相加的 date 部分。下表列出了所有有效的 datepart 参数。用户定义的变量等效项是无效的。datepart 缩写
year
yy, yyyy
quarter
qq, q
month
mm, m
dayofyear
dy, y
day
dd, d
week
wk, ww
weekday
dw, w
hour
hh
minute
mi, n
second
ss, s
millisecond
ms
microsecond
mcs
nanosecond
ns
number
是一个表达式,可以解析为与 date 的 datepart 相加的 int。用户定义的变量是有效的。如果您指定一个带小数的值,则将小数截去且不进行舍入。date
是一个表达式,可以解析为 time、date、smalldatetime、datetime、datetime2 或 datetimeoffset 值。date 可以是表达式、列表达式、用户定义的变量或字符串文字。如果表达式是字符串文字,则它必须解析为一个 datetime 值。为避免不确定性,请使用四位数年份。有关两位数年份的信息,请参阅 two digit year cutoff 选项。返回类型
--------------------------------------------------------------------------------返回数据类型为 date 参数的数据类型,字符串文字除外。字符串文字的返回数据类型为 datetime。如果字符串文字的秒数小数位数超过三位 (.nnn) 或包含时区偏移量部分,将引发错误。
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
DateTime dt = DateTime.Now;
//定义一个时间段,为2个小时
TimeSpan ts=new TimeSpan(2,0,0);
//当前时间减去定义的2个小时,就是把时间提前2个小时了,如果是要增加时间调用Add方法
dt = dt.Subtract(ts); DateTime dt1;
string s = "2010-4-4 15:27:49";
//这个是将字符串转为时间DateTime,再像前面一样减两个小时,如果是要增加时间调用Add方法
if (DateTime.TryParse(s, out dt1) == true)
{
dt1 = dt1.Subtract(ts);
}
}
}
}
select dateadd(hour,-2,'98-02-03 10:05:03')