SQL:比较字符串文本字段中的日期范围
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL:比较字符串文本字段中的日期范围相关的知识,希望对你有一定的参考价值。
我有一个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 ......”????
任何帮助表示赞赏。
非常感谢,
答案
在你的C#代码中,当你浏览记录时,我会像这样拆分字符串:
char[] delimiters = {' '};
string[] FileNameParts = FileName.Split(delimiters);
这将生成一个数组FileNameParts
,其第二个元素将包含日期,您可以将其转换为在查询中使用的实际日期:
DateTime FileNameDate = Convert.ToDateTime(FileNameParts(1))
有点像:
sSQL = "SELECT * FROM Table WHERE " & beginDate & " <= " & FileNameDate
我认为这更适合在表中添加包含FileName字段的日期子字符串的列,因为每当修改现有记录或添加新记录时,您都需要不断更新该列。这意味着C#端更加混乱,或者访问端的UPDATE
查询至少需要定期调用。无论哪种方式,它都会与数据库进行更多的沟通。
以上是关于SQL:比较字符串文本字段中的日期范围的主要内容,如果未能解决你的问题,请参考以下文章
Linq to SQL 选择 DateTime 字段在任何日期范围列表中的行