【发布时间】:2019-04-10 07:09:24
【问题描述】:
My SQL 数据库每天对 Access 数据库中的所有记录进行备份,并使用“Logtime”字段(格式为日期时间)指示备份时间。我的 SQL 数据库的重点是存储我的 Access 数据库记录的所有版本。例如,如果 Access 数据库中的条目发生更改,我可以在 SQL 中查看该条目的所有版本,并确定更改的内容和时间。我正在使用下面的查询从我的 SQL 数据库中选择记录,但它一次只适用于一个日期。因为字段“Logtime”充当将记录拉在一起的唯一标识符,所以我不确定如何查询日期范围而不提取错误的重复记录。我将非常感谢社区可以提供的任何帮助。如果我能以任何方式澄清我的问题,请告诉我。
DECLARE @theDate varchar(60)
SET @theDate = '10/31/2018'
SELECT dbo.tbl_EquipmentRequests.Logtime, dbo.tbl_EquipmentRequests.[Equipment Request ID], dbo.tbl_EquipmentRequests.[TrackIT Number], dbo.tbl_EquipmentRequests.[Requestor name:],
dbo.tbl_EquipmentRequests.[Requestor email:], dbo.tbl_EquipmentRequests.[Entered on:], dbo.tbl_EquipmentRequests.[Approver name:], dbo.tbl_EquipmentRequests.[Approver email:],
dbo.tbl_EquipmentRequests.Status, dbo.tbl_EquipmentRequests.Notes, dbo.[tbl_IT Staff].[IT Staff Member], dbo.tbl_Order_Types.[Order Type], dbo.tbl_EquipReqDetails.Vendor, dbo.tbl_EquipReqDetails.Quantity,
dbo.tbl_EquipReqDetails.[Unit Price], dbo.tbl_EquipReqDetails.[Account Code], dbo.tbl_EquipReqDetails.Status AS Expr1, dbo.tbl_EquipReqDetails.[Vendor Invoice #],
dbo.tbl_EquipReqDetails.[Invoice approved by Tom], dbo.tbl_EquipReqDetails.[Invoice date], dbo.tbl_EquipReqDetails.[Invoice sent to AP on], dbo.tbl_EquipReqDetails.Notes AS Expr2,
dbo.tbl_Equipment.[Equipment Description]
FROM dbo.tbl_EquipmentRequests INNER JOIN
dbo.[tbl_IT Staff] ON dbo.tbl_EquipmentRequests.[Entered by:] = dbo.[tbl_IT Staff].ID INNER JOIN
dbo.tbl_Order_Types ON dbo.tbl_EquipmentRequests.[Order Type] = dbo.tbl_Order_Types.ID INNER JOIN
dbo.tbl_EquipReqDetails ON dbo.tbl_EquipmentRequests.[Equipment Request ID] = dbo.tbl_EquipReqDetails.[Equipment Request ID] INNER JOIN
dbo.tbl_Equipment ON dbo.tbl_EquipReqDetails.[Equipment ID] = dbo.tbl_Equipment.ID
WHERE (CAST(dbo.tbl_EquipmentRequests.Logtime AS date) = @theDate) AND (CAST(dbo.[tbl_IT Staff].Logtime AS date) = @theDate) AND (CAST(dbo.tbl_Order_Types.Logtime AS date) = @theDate) AND
(CAST(dbo.tbl_EquipReqDetails.Logtime AS date) = @theDate) AND (CAST(dbo.tbl_Equipment.Logtime AS date) = @theDate)
【问题讨论】:
-
请用您的 SQL 数据库(MS Access?)标记您的帖子。 “SQL”是一个通用术语,不是数据库平台。
-
@Elaskanator 我正在运行 SSMS 2017,这算不算?
-
将
=更改为>=或<=。似乎是您所需要的一切。并将日期存储为date而不是varchar。 -
SQL Server Management Studio (SSMS) 能够查询各种数据库平台(例如 Azure),而不仅仅是 SQL Server。您应该能够通过检查服务器名称后括号中的前几个单词或服务器属性的“常规”选项卡下的“产品”字段来判断对象资源管理器。
标签: sql sql-server tsql