问题描述
大家好,关于数据库时段查询问题?问题是这样的,表中的某个字段里保存记录时间值,但是字段是字符的,而且保存着类似于"2005年5月26日"这样的数据,当然大部分的数据是"2005-5-2612:04:54"正常格式的,问一下,怎样写SQL语句,可以保证:"2005年5月26日"这样的数据也能够查出来!
解决方案
解决方案二:
d
解决方案三:
我遇到过:假如那个时间字段的名字叫time_name.Select*fromtable_namewhereformat('yyyy-dd-mm',time_name);大概是用format函数,我有点忘了,你试试
解决方案四:
哦,那个sql写的不对。select*fromtable_namewhereformat('yyyy-mm-dd',time_name);
解决方案五:
不行就都replace一下
解决方案六:
'format'不是可以识别的函数名。pangniu84的方法可能不行,还有没有好的办法,我觉得可能要用到子表查询.就是没想到!
解决方案七:
用replace该如何处理?
解决方案八:
replace(replace(replace(日期,'年','-'),'月','-'),'日','-')
解决方案九:
这种处理方式可以写在WEHERE后面吗,举个例子来看看
解决方案十:
select*from[table_name]wherereplace(replace(replace([time_name],'年','-'),'月','-'),'日','-')>'2007-01-01'
解决方案十一:
在where后面可以像楼上这么用,我是说你要条件许可的话可以把数据库里的数据全部转换一下
解决方案十二:
先把时间的年月日取出来,把字符串中的“年”,“月”,“日”替换成“-”,这时候在进行查询
解决方案十三:
先写一个函数用于正确格式化时间CREATEFUNCTIONF_DATE_FORMAT(_DAY)...然后select*from[table_name]whereF_DATE_FORMAT(date_column)>'2007-01-01:'
解决方案十四:
他们说的都过于复杂了你不就要****年××月××日-2005年5月26日一般用户选择都是到日,一个开始一个结束,比如结束的日子比如2005年5月26日那你就加一天AddDays(1)算到2005年5月27日,因为这样是查到27日的0点0分0秒查询语句用BETWEEN@BeginTimeAND@EndTime)ok既简单又明了!
解决方案十五:
谢谢大家了,9楼的是正解!
解决方案:
cast(fdDateStringasdatetime)