如何解决在 VBA 中创建 SQL 视图
我正在尝试在我的数据库中名为 petients
的表上创建一个视图。该表有五列。其中之一是我想保留患者入院日期的列。它的数据类型是日期时间,所以我想创建一个基于 current date
过滤此表中数据的查询。例如,我想创建一个视图,仅显示当天记录的患者的详细信息。
这是我的代码:
CREATE VIEW [dbo].[recent petients]
AS
SELECT petient_id,name,age,contact
FROM [petients]
WHERE [date] = 'date.Today'
我收到一条错误消息,指出无法将日期转换为字符串。能不能帮我解决一下,或者我的代码哪里错了?
解决方法
您的代码看起来像 SQL Server 代码。如果是这样,我会建议:
SELECT petient_id,name,age,contact
FROM [patients]
WHERE [date] = CONVERT(date,GETDATE());
请注意:此版本比 DATEDIFF()
好得多,因为它允许在 patient([date])
上使用索引。
如果“日期”列有时间组件,可以使用:
WHERE CONVERT(date,[date]) = CONVERT(date,GETDATE())
请注意,这在 SQL Server 中也是索引安全的。
,我假设您使用的是 Microsoft SQL Server 的 Transact-SQL,但您应该指定您使用的 sql 方言。
由于日期时间字段类型一般也包含时间,所以最好使用DATEDIFF
函数:https://docs.microsoft.com/it-it/sql/t-sql/functions/datediff-transact-sql?view=sql-server-ver15
在您的情况下,仅考虑 date=today
的记录,天数差必须为零:
--SQL QUERY
WHERE DATEDIFF(day,GETDATE(),[date]) = 0
-
day
标识要考虑差异的元素。可在链接中找到名称或缩写列表 -
GETDATE()
现在返回日期时间 - 第二个和第三个参数是您想要区分的日期
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。