to_char是格式化函数,将日期转成指定的格式才可以做between and计算
select,max(create_time)froma
wherecreate_time
groupbyuser_id
这句可以理解为将结果集根据user_id分组,每组取time最大一条记录。这样就很好的实现了批量查询最近记录,并且仅仅需要遍历一次表,即使在数据量巨大的情况下也可以在很短的时间查出结果。
扩展资料:
SQL数据查询语句
1、语句语法简单归纳为:
SELECTselect_list[INTOnew_table_name][FROMtable_source]
[WHEREsearch_condition][GROUPBYgroup_by_expression]
[HAVINGsearch_condition][ORDERBYorder_expression[ASC|DESC]]
2、WITH子句用于指定临时命名的公用表达式,在单条语句(SELECT、INSERT、UPDATE、DELETE)的语句执行范围内定义。
3、LIKE关键字
用于模糊查询,通配符有%、_、[]、[^]
%:后面可以跟零个或多个字符
_:匹配任意单个字符
[]:查询一定范围内的单个字符,包括两端数据
[^]:表示不在一定范围内的单个字符,包括两端数据
没有什么原格式,你存入数据库的时候,datetime类型就按照固定格式存储进去了,根本无法回溯所谓的“原格式”,你只能在查询输出时按照你想要的格式输出而已。比如你想要的yyyy/MM/dd,sql里面处理的话就是 CONVERT(varchar(12) , getdate(), 111 )select from 语句例:
明天
select convert(varchar(10),getdate() + 1,120)
最近七天
select from tb where 时间字段 >= convert(varchar(10),getdate() - 7,120)
随后七天
select from tb where 时间字段 <= convert(varchar(10),getdate() + 7,120) and 时间字段 >= 时间字段F_Date里面既然已是时间日期数据类型,那么就无需在转成什么如2009
722这种格式了。我们在外面只要把所要查询的日期范围,应该是2个日期,把它们的格式弄好就可以了
string datemin=DateTimeParse("2009年5月1日 00:00");
string datemax=DateTimeParse("20009年7月1日 12:12");
然后写sql语句如下:
string strsql="select from T_Chart where F_Date>='"+datemin+"' and F_Date<='"+datemax+"'";
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)