我目前正在使用数据库,其中日期以(DD / MM / YYYY)格式存储为字符串。
我目前正在尝试查找一系列日期,即(2017年7月15日至2017年7月26日),然后填写每周列表。
我遇到的问题因为这些值在SQL中存储为字符串我无法选择范围,除非我指定了值。
我想知道是否有任何可以帮助我的SQL Wizards。
谢谢, 乔
答案 0 :(得分:3)
你可以在和str_to_date之间使用,例如:
select *
from my_table
where str_to_date(my__date_column, '%d/%m/%Y')
between str_to_date('15/07/2017', '%d/%m/%Y')
and str_to_date('26/07/2017', '%d/%m/%Y')
答案 1 :(得分:-2)
Hello Everyone我修改了我的答案,因为前一个答案是错误的,对其他用户没有帮助。简而言之,我不得不将日期更改为在SQL中正确存储为日期。总之,不幸的是没有捷径。
这是我使用的SQL查询(没有SQL注入保护),我希望这是有帮助的
"SELECT * FROM placement WHERE ('" + StartDate.ToString("yyyy-MM-dd") + "'
between StartDate and EndDate OR '" + EndDate.ToString("yyyy-MM-dd") + "'
between StartDate and EndDate or StartDate = '" + StartDate.ToString("yyyy-
MM-dd") + "' or EndDate = '" + StartDate.ToString("yyyy-MM-dd") + "' or
StartDate = '" + EndDate.ToString("yyyy-MM-dd") + "' or EndDate = '" +
EndDate.ToString("yyyy-MM-dd") + "') AND YearGroup = '" +
User.IntakeYear.ToString() + "' AND Cohort = '" + User.Cohort.ToString() +
"';";
感谢您的反馈。