如何在SQL服务器中使用系统日期或当前日期

How to use the system date or current date in SQL Server

例如,在一个数据库"Library"中,我想在名为“Sharpstown”的分支中获取今天到期的书名、借款人姓名和地址?

这就是我做 select 声明的方式 --

SELECT BOOK.Title,BORROWER.Name, BORROWER.Address
FROM BORROWER,BOOK,LIBRARY_BRANCH,BOOK_LOANS
WHERE BOOK.BookID = BOOK_LOANS.BookID AND
      LIBRARY_BRANCH.BranchID = BOOK_LOANS.BranchID AND 
      BOOK_LOANS.CardNo = BORROWER.CardNo AND
      LIBRARY_BRANCH.BranchName = 'Sharpstown' AND 
      BOOK_LOANS.DueDate = now() -- This is where I want to compare the dates  

错误是:

'now' is not a recognized built-in function name.

对于 SQL 服务器,使用 getDate() 而不是 now()。根据 BOOK_LOANS.DueDate 的数据类型,您可能会遇到其他问题,因此您可能需要 CAST:

... and CAST(BOOK_LOANS.DueDate as date) = CAST(getDate() as date)

SQL 服务器中的“date”类型有 granularity/precision 天。默认情况下 getDate() returns "datetime" 类型的值,具有 granularity/precision 毫秒。

您不能在 SQL 服务器中使用 NOW。在 SQL 服务器中,我们有 GETDATE()

SELECT BOOK.Title,BORROWER.Name, BORROWER.Address
FROM BORROWER,BOOK,LIBRARY_BRANCH,BOOK_LOANS
WHERE BOOK.BookID = BOOK_LOANS.BookID 
  AND LIBRARY_BRANCH.BranchID = BOOK_LOANS.BranchID 
  AND BOOK_LOANS.CardNo = BORROWER.CardNo 
  AND LIBRARY_BRANCH.BranchName = 'Sharpstown' 
  AND BOOK_LOANS.DueDate = CONVERT(DATE, CAST(GETDATE() AS VARCHAR(12)), 105)