首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何显示“今日日期”列、“时间”列、“前一日期”列、“时间”列

如何显示“今日日期”列、“时间”列、“前一日期”列、“时间”列
EN

Stack Overflow用户
提问于 2009-06-22 14:54:56
回答 3查看 829关注 0票数 2

使用Access数据库

表格

代码语言:javascript
复制
Cardno  name        cardeventdate Intime Outtime

0001    Michael     20080811      102746 185249
0001    Michael     20080812      080828 080828
0002    Michael     20080811      082615 082615
0002    Michael     20080812      073624 190605

在上表中,我想显示另外两列,如

Cardno,name,cardeventdate,Intime,Outtime,昨天cardeventdate (上一列日期),昨天Outtime (上一列Outtime)

卡诺- 0001

名字-迈克尔

日期- 20080811

即时- 102746

出厂时间- 185249

昨日- 102746

昨日出厂- 185249

例如,“今日时间”为090000,“输出时间”为180000,我希望显示“今日日期”、“即时”、“超时”、“前一次日期”列、“前一次”列属于Cardno

我的日期不是连续的,在我的数据库日期是20090601,20090508。所以我们不能把日期-1

Am使用子查询

预期产出

代码语言:javascript
复制
Cardno name    cardeventdate Intime Outtime Yesterdaycardeventdate YesterdayOuttime

0001   Michael 20080811      102746 185249  20080810               175050
0001   Michael 20080812      080828 080828  20080811               185249
0002   Michael 20080811      082615 082615  20080810               192727
0002   Michael 20080812      073624 190605  20080811               082615

需要查询帮助吗?

EN

回答 3

Stack Overflow用户

发布于 2009-06-22 15:20:29

“以前”不是Server中的一个绝对概念--它取决于您的数据是如何排序的。如何对结果集进行排序?在所有的行中,我看不出有什么是正确的。

SQL 2000解决方案很难看,但是它基本上是这样的:**注意:根据上面的附加信息编辑的代码。

代码语言:javascript
复制
SELECT CARDNO, CARDEVENTDATE, INTIME, OUTTIME, 
       (SELECT TOP 1 CARDEVENTDATE 
        FROM MyTable b
        WHERE a.CARDNO = b.CARDNO
        AND   a.INTIME > b.INTIME
        ORDER BY INTIME DESC) AS PREVCARDEVENTDATE,
       (SELECT TOP 1 OUTTIME
        FROM MyTable b
        WHERE a.CARDNO = b.CARDNO
        AND   a.INTIME > b.INTIME
        ORDER BY INTIME DESC) AS PREVOUTTIME
FROM   MyTable AS a

更灵活的解决方案是使用SQL 2005或2008并对函数进行排序--如果您感兴趣的话,请看我在这里的博客文章:

http://thehobt.blogspot.com/2009/02/rownumber-rank-and-denserank.html

票数 1
EN

Stack Overflow用户

发布于 2009-06-24 14:53:42

您不能将字符串强制转换为小日期,然后从日期中删除一个字符串吗?例如,强制转换(“20080102”作为小时间) -1

票数 0
EN

Stack Overflow用户

发布于 2009-07-01 11:49:51

不能将字符串强制转换为一个小时间,然后从日期中删除一个字符串,例如强制转换(“20080102”作为小时间) -1

cast(“20080101”作为小时间) -1将返回20080100

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1027673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档