部分文本字段中的SQL搜索日期范围
我在SQL数据库中有一个文本字段,其日期通常类似于1897年1月13日,但可能只是1962年、2013年1月或1956年等 我希望能够在年度范围内完成一项工作。从1945年到1987年 我意识到可能很难适应所有格式的数据。如果它能满足以下需求,我会很高兴:部分文本字段中的SQL搜索日期范围,sql,date,range,where,Sql,Date,Range,Where,我在SQL数据库中有一个文本字段,其日期通常类似于1897年1月13日,但可能只是1962年、2013年1月或1956年等 我希望能够在年度范围内完成一项工作。从1945年到1987年 我意识到可能很难适应所有格式的数据。如果它能满足以下需求,我会很高兴: 1972年2月13日、1972年2月和1972年假设您正在使用MySQL。如果希望能够通过适当的日期比较查询表,则可能需要创建一个DATETIME类型的新字段,并用当前字段生成的DATETIMES填充该字段。您需要以下查询: UPDATE _
1972年2月13日、1972年2月和1972年假设您正在使用MySQL。如果希望能够通过适当的日期比较查询表,则可能需要创建一个DATETIME类型的新字段,并用当前字段生成的DATETIMES填充该字段。您需要以下查询:
UPDATE _TABLE_ set NEW_DATETIME_FIELD = STR_TO_DATE(_CURRENT_FIELD_, '%Y') where CHAR_LENGTH(_CURRENT_FIELD_) = 4;
上述查询适用于_CURRENT _field _值为'1945'的记录。您需要对当前字段中的每种类型的日期字符串运行此查询
新的DATETIME字段将允许您对其正确使用MySQL。如果您只关心上面的日期格式,并且您只需要年份,那么您可以使用值的最后4个字符 在SQL Server中,这将是:
RIGHT(datefield,4)
或在包括SQL Server在内的大多数语言中:
SUBSTRING(datefield,LEN(datefield)-3,4)
在ANSI SQL中:
MID(datefield,LEN(datefield)-3,4)
您正在使用哪个DBMS?MySQL不喜欢上面的子字符串。我的代码:如果!空$fromyear&!空$toyear{$query1.=和SUBSTRINGdate,LENdate-3,4介于$fromyear和$toyear之间;它表示LEN函数不存在。我使用:if!empty$fromyear&!empty$toyear{$query1.=和RIGHTdate,4介于$fromyear和$toyear之间;