Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySql查询中这两个日期\格式函数的区别是什么?_Mysql_Group By - Fatal编程技术网

MySql查询中这两个日期\格式函数的区别是什么?

MySql查询中这两个日期\格式函数的区别是什么?,mysql,group-by,Mysql,Group By,选择。。。。。 哪里 a、 日期创建于“2014-01-01 00:00:00”和“2015-01-31 23:59:59”之间 按a.StoreID、b.ProductID、日期\格式(a.DateCreated、“%m”)分组 及 选择。。。。 哪里 a、 日期创建于“2014-01-01 00:00:00”和“2015-01-31 23:59:59”之间 按a.StoreID、b.ProductID、DATE_格式(a.DateCreated、%Y-%m')分组第一个是月份 对于a.St

选择。。。。。 哪里 a、 日期创建于“2014-01-01 00:00:00”和“2015-01-31 23:59:59”之间 按a.StoreID、b.ProductID、日期\格式(a.DateCreated、“%m”)分组

选择。。。。 哪里 a、 日期创建于“2014-01-01 00:00:00”和“2015-01-31 23:59:59”之间
按a.StoreID、b.ProductID、DATE_格式(a.DateCreated、%Y-%m')分组第一个是月份

  • 对于a.StoreID的每个组合,最多可以得到12行, b、 结果中的ProductID
第二个是年和月(顺便说一句,这可能更好)

  • 您每年都会得到12个月的行,以及结果中a.StoreID、b.ProductID的每个组合
然而

不要在日期愤怒筛选中使用between,也不要在一天结束时使用23:59:59,因为不是这样,更好的方法是:

where a.DateCreated >= '2014-01-01 00:00:00' 
and a.DateCreated < '2016-01-01 00:00:00' 
其中a.DateCreated>=“2014-01-01 00:00:00”
和a.DateCreated<'2016-01-01 00:00:00'

它会影响输出的任何差异吗?如果是,请说明原因。您正在筛选2年的数据。(2014和2015)如果您想要年和月的行,则使用年和月,如果您只想要月的行,则使用月。不同之处在于两个查询将产生的行数。我的猜测是你应该使用年和月,但它产生的结果是相同的,只是顺序改变了。我的数据太大,无法分析任何差异,但返回的行数是相同的。这将是由于数据,而不是逻辑。我不知道您的要求是什么,但如果您需要将2014年与2015年分开,请使用年和月。如果你想把2014年和2015年合并成一个月一个月的数字,那么就用月。我在前面的回复中补充了这一点,以防你错过