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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在mysql中如何将时间的格式设置成yyyy-mm?相关的知识,希望对你有一定的参考价值。

高手帮帮我呀不是获取当前时间

参考技术A 如果确定要转的字符串一定是时间格式可以用这个
datetime.parse(ostr
);
否则用下面这种方法,如果isparse是true是转换成功值被赋给dt
否则就是转换失败
datetime
dt=new
datetime()
bool
isparse=datetime.tryparse(ostr
,out
dt);

从日期时间列中提取 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?的主要内容,如果未能解决你的问题,请参考以下文章

如何将“YYYYMM”格式转换为“YYYY-MM-00”?

mysql数据库可以以"yyyy-MM"的形式保存时间?如果可以怎么使用Java语言保存进去?

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

hive怎么把日期转化成yyyy-mm格式?

SQL数据库中怎么将时间格式转换到年和月?

SQL数据库中怎么将时间格式转换到年和月?