我认为我已经阅读了关于这个主题的所有帖子,但是没有一个能解决我的问题。
首先,我正在使用的数据库将所有日期字段设置为varchar数据类型,这使我非常烦恼,因为每当我使用涉及日期的查询时都必须进行强制转换或转换。
我目前正在处理的查询应该提取一份医学患者列表,他们都有特定的诊断,但是该诊断必须在某个日期之前给出。这里是我的代码。
我遇到了一个错误,错误信息是“无法将日期和/或时间从字符字符串转换”。它告诉我错误在第一行(
正如我之前提到的,
我之前正在处理另一个查询,该查询要求我查找一定时间范围内的所有患者预约,并且对于该查询,我的
首先,我正在使用的数据库将所有日期字段设置为varchar数据类型,这使我非常烦恼,因为每当我使用涉及日期的查询时都必须进行强制转换或转换。
我目前正在处理的查询应该提取一份医学患者列表,他们都有特定的诊断,但是该诊断必须在某个日期之前给出。这里是我的代码。
SELECT DISTINCT
pd.PatientID,
pd.PatientName,
pmh.DateOfOnset
pmh.DiagnosisCode
FROM PatientDemographic pd JOIN PatientMedicalHistory pmh ON pd.PatientID = pmh.PatientID
WHERE pmh.DiagnosisCode = '401.1'
AND CAST(pmh.DateOfOnset as Date) > CAST('12/31/2014' as Date)
我遇到了一个错误,错误信息是“无法将日期和/或时间从字符字符串转换”。它告诉我错误在第一行(
SELECT DISTINCT
行),这并没有提供太多帮助,我不确定需要修复什么。正如我之前提到的,
DateOfOnset
字段是 varchar 数据类型,我需要找到任何一个在2014年12月底之前的日期。我尝试通过尝试不同的 CAST
语句组合来解决此错误 - 我甚至尝试在 SELECT
语句中的日期字段上包含一个 cast,但仍然出现相同的错误。我之前正在处理另一个查询,该查询要求我查找一定时间范围内的所有患者预约,并且对于该查询,我的
WHERE
子句设置如下:WHERE Cast(VisitDate as Date) BETWEEN CAST('01/01/2014' as Date) AND CAST('12/01/2014' as Date)
...而且它完美地运作了。由于我当前的查询设置方式与之前几乎相同,所以我不确定为什么会出现转换错误。