SimpleDateFormat日期转化错误?
把2017年12月31日转化为2018-12-31
SimpleDateFormat f = new SimpleDateFormat("YYYY-MM-dd");
f.format(date);
把2017年12月31日转化为2018-12-31
正确写法应该是:
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
dateFormat(date, pattern[,language])用于将时间格式化为期望的字符串,其中date可以是时间字符串,也可以是Date对象,pattern为格式化参数,yyyy表示年,MM表示月,dd表示天数,HH表示小时,mm表示分钟,ss表示秒.比如dateFormat("2006-07-04 12:12:12", "日期:yyyy-MM-dd HH:mm:ss") 将返回"日期:2006-07-04 12:12:12".
YYYY是小写yyyy
一个字段变更前多条记录变更后也是多条,怎么用sql拼到一起?
具体如下:
先不管这么多,我先把变更前变更后都left join过去
结果发现是这样的
然后想到应该使用全外连接full join,但是mysql没有full join,需要通A left join B union A right join B 实现
但是这个A对应D和B对应E的条件是什么呢?A和D并没有直接关系,请教了一下同事,先把ABC和DE分别排序,然后序号相等的连接起来,
生成序号的sql为:ROW_NUMBER () OVER () AS XUHAO,
但是我发现我一个sql里有很多人员,而且同一个人员会有不同日期的变更,单纯的按照变更前变更后生产序号已经不能满足了
然后去百度了一下sql的over这个关键字发现他后面还有两个属性
ROW_NUMBER () OVER (partition by coloumn1,order by coloumn2) AS XUHAO,
含义为按column1指定的字段进行分组,或者说按字段column1的值进行分组排序。
按column2 进行排序
然后我根据我的人员编号的变更日期对数据集进行排序,
ROW_NUMBER () OVER (partition by 人员编号,变更日期,order by 变更日期) AS XUHAO,
然后再全连接