SQL:比较字符串文本字段中的日期范围

时间:2017-12-20 04:29:22

标签: sql string ms-access compare date-range

我有一个MS Access数据库。我正在用C#编写一个应用程序来访问它。我在MS Access中有一个类型为“FileName”的字段“Short Text”.FileName字段中的数据类似于“Test 11-12-2004 15.11.15”。

使用日期范围,我必须根据FileName字段搜索记录。我无法获得 - 如何比较此格式的日期并检索记录? FileName是Text类型,date是它的子字符串。仅检索日期部分并与>= beginDate && <= endDate进行比较对我来说似乎是一个难题。

任何人都可以建议我如何编写SQL查询来执行此日期范围比较并检索那些记录 - “从TestHead中选择* FileName ......”????

感谢任何帮助。

非常感谢,

1 个答案:

答案 0 :(得分:1)

在您的C#代码中,当您浏览记录时,我会像这样分割字符串:

char[] delimiters = {' '};
string[] FileNameParts = FileName.Split(delimiters);

这将生成一个数组FileNameParts,其中第二个元素将包含日期,您可以将其转换为在查询中使用的实际日期:

DateTime FileNameDate = Convert.ToDateTime(FileNameParts(1))

有些事情:

sSQL = "SELECT * FROM Table WHERE " & beginDate & " <= " & FileNameDate

我认为这更适合在表中添加包含FileName字段的日期子字符串的列,因为每当修改现有记录或添加新记录时,您都需要不断更新该列。这意味着C#端更加混乱,或者Access端的UPDATE查询至少需要定期调用。无论哪种方式,它都会与数据库进行更多的沟通。