📄 11-4-9.cfm.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>比较日期和时间</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>
<body>
<font FACE="宋体"><b>
<p ALIGN="JUSTIFY">比较日期和时间</p>
</b></font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">最后,还有两个日期和时间函数对根据日期和时间取出记录是有用的。使用函数DATEADD()和DATEDIFF(),你可以比较日期的早晚。例如,下面的SELECT语句将显示表中的每一条记录已经输入了多少个小时:</p>
<p ALIGN="JUSTIFY">SELECT entrydate </font><font SIZE="3">‘</font><font FACE="宋体"
SIZE="3">Time Entered</font><font SIZE="3">’</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">DATEDIFF(hh,entrydate,GETDATE()) </font><font SIZE="3">‘</font><font
FACE="宋体" SIZE="3">Hours Ago</font><font SIZE="3">’</font><font FACE="宋体"
SIZE="3"> FROM weblog</p>
<p ALIGN="JUSTIFY">如果当前时间是2000年11月30号下午6点15分,则会返回如下的结果:</p>
<p ALIGN="JUSTIFY">Time Entered Hours Ago</p>
</font><font SIZE="3">
<p ALIGN="JUSTIFY">…………………………………………………</font><font
FACE="宋体" SIZE="3">..</p>
<p ALIGN="JUSTIFY">Dec 30 2000 4:09PM 2</p>
<p ALIGN="JUSTIFY">Dec 30 2000 4:13PM 2</p>
<p ALIGN="JUSTIFY">Dec 1 2000 4:09PM 698</p>
<p ALIGN="JUSTIFY">(3 row(s) affected)</p>
<p ALIGN="JUSTIFY">函数DADEDIFF()的参数是三个变量。第个变量指定日期的某一部分。在这个例子中,是按小时对日期进行比较,(要了解日期各部分的详细内容,请参考表11.2)在日期2000年11月1日和2000年11月30日的指定时间之间有689个小时。另外两个参数是要进行比较的时间。为了返回一个正数,较早的时间应该先给。</p>
<p ALIGN="JUSTIFY">函数DATEADD()把两个日期相加。当你需要计算截止日期这一类的数据时,这个函数是有用处的。例如,假设访问者必须先注册才能使用你的站点。注册以后,他们可以免费使用你的站点一个月。要确定什么时候他们的免费时间会用完,你可以使用如下的SELECT语句:</p>
<p ALIGN="JUSTIFY">SELECT username </font><font SIZE="3">‘</font><font FACE="宋体"
SIZE="3">User Name</font><font SIZE="3">’</font><font FACE="宋体" SIZE="3">,</p>
<p ALIGN="JUSTIFY">DATEADD(mm,1,firstvisit_date) </font><font SIZE="3">‘</font><font
FACE="宋体" SIZE="3">Registration Expires</font><font SIZE="3">’</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">FROM registration_table</p>
<p ALIGN="JUSTIFY">函数DATEADD()的参数有三个变量。第一个变量代表日期的某一部分(参见表11.2),这个例子用到了代表月份的mm。第二个变量指定了时间的间隔――在本例中是一个月。最后一个变量是一个日期,在这个例子中,日期是取自DATETIME型字段firstvisit_date.假设当前日期是June
30,2000,这个语句将返回如下的内容:</p>
<p ALIGN="JUSTIFY">User Name Registration Expires</p>
</font><font SIZE="3">
<p ALIGN="JUSTIFY">……………………………………………………………………………</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">Bill Gates Jul 30 2000 4:09PM</p>
<p ALIGN="JUSTIFY">President Clinton Jul 30 2000 4:13PM</p>
<p ALIGN="JUSTIFY">William Shakespeare Jul 1 2000 4:09PM</p>
<p ALIGN="JUSTIFY">(3 row(s) affected)</p>
<p ALIGN="JUSTIFY">注意</p>
<p ALIGN="JUSTIFY">与你预料的相反,使用函数DATEADD()把一个日期加上一个月,它并不加上30天。这个函数只简单地把月份值加1。这意味着在11月注册的人将比在2月注册的人多得到2天或3天的时间。要避免这个问题,你可以用函数DATEADD()直接增加天数,而不是月份。</p>
</font>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -