怎么将mysql查询的日期类型转为yyyy-MM-dd

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么将mysql查询的日期类型转为yyyy-MM-dd相关的知识,希望对你有一定的参考价值。

myeclipse把mysql查询过来的日期转换格式,转不好啊,哪位大神教一下
报错

参考技术A 首先,你接数据用date来接,
其次,用simpledateformat方法的format方法。

补充:parse方法是将创建的yyyy-M-d字符串类型的日期,比如2018-1-12换成date类型。用的接收数据库数据方法和格式化方法不对。
参考技术B

别人回答的别管,看我的回答就好

public static Date getDateByStrToYMDHMSWithEEE(String str) 
    String YMDHMS_FORMAT_2 = "EEE MMM dd HH:mm:ss z yyyy";
Date date = null;
if (str != null && str.trim().length() > 0) 
DateFormat dFormat = new SimpleDateFormat(YMDHMS_FORMAT_2, Locale.ENGLISH);
try 
date = dFormat.parse(str);
 catch (ParseException e) 
e.printStackTrace();


return date;

从日期时间列中提取 YYYY-MM

【中文标题】从日期时间列中提取 YYYY-MM【英文标题】:Extracting YYYY-MM from datetime column 【发布时间】:2018-11-28 03:40:46 【问题描述】:

我有一个这种格式的数据框 -

var1  date
A     2017/01/01
A     2017/01/02
...

我希望将日期转换为 YYYY-MM 格式,但 df['date'].dtypeobject。 如何在将数据类型保持为日期时间的同时从日期中删除日期部分?

预期输出 -

A - 2017/01

谢谢

【问题讨论】:

您需要先解析当前日期 - 读取 csv 文件时有一个 parse_dates 参数。然后您可以转换为您想要的任何输出。或者,只需使用 lambda 函数 df.date.apply(lambda x: x[0:4] + "/" + x[4:5]) How can I remove the day part from date while keeping the data type as datetime?。这不可能。就像在现实生活中一样,每个日期都有一天。选择您想要的:字符串(包含您喜欢的任何组件)或日期时间(包含所有组件,即使它们不是全部显示)。 @jpp,我们可以使用period dtype 作为datetimeobject dtypes 之间的折衷... @MaxU,公平点。感谢您以有效的妥协重新打开 :) 【参考方案1】:

可以将每个日期替换为每月的第一天:

pd.to_datetime(d["date"], format="%Y/%m/%d").apply(lambda x: x.replace(day=1))

结果

0 2017-01-01
1 2017-01-01

【讨论】:

dtype 是对象。我需要它作为日期时间 恐怕这并不能回答问题,这需要妥协。 datetime 对象不能“删除”日期。【参考方案2】:

datetime dtype 不能有自定义表示。但您有以下选择:

    使用字符串 - 您可能有任何表示形式(如您所愿),但所有日期时间方法和属性都会丢失 使用datetime,但将day 部分设置为1(如@Kopytok 所示)。 使用period dtype,它仍然允许您使用一些日期算术

演示:

In [207]: df
Out[207]:
  var1       date
0    A 2018-12-31
1    A 2017-09-07
2    B 2016-02-29

In [208]: df['new'] = df['date'].dt.to_period('M')

In [209]: df
Out[209]:
  var1       date     new
0    A 2018-12-31 2018-12
1    A 2017-09-07 2017-09
2    B 2016-02-29 2016-02

In [210]: df.dtypes
Out[210]:
var1            object
date    datetime64[ns]
new             object
dtype: object

In [211]: df['new'] + 8
Out[211]:
0   2019-08
1   2018-05
2   2016-10
Name: new, dtype: object

【讨论】:

以上是关于怎么将mysql查询的日期类型转为yyyy-MM-dd的主要内容,如果未能解决你的问题,请参考以下文章

java怎么将String转换成日期

php怎么将指定日期转换为时间戳?

linq 怎么转换日期为字符串

linq 怎么转换日期为字符串

mysql字符串转日期函数

在mysql中如何将时间的格式设置成yyyy-mm?