请输入时间格式YYYYMM是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请输入时间格式YYYYMM是啥?相关的知识,希望对你有一定的参考价值。

请输入时间格式YYYYMM是什么?

请输入时间格式YYYYMM的意思就是在单元格时间格式中输入“YYYYMM”格式。

具体步骤如下:

需要准备的材料分别是:电脑、Excel表格。

1、首先打开需要编辑的Excel表格,点击需要设置的单元格。

2、然后右键单击单元格选择打开“设置单元格格式”。

3、然后在弹出来的窗口中点击选择“自定义”。

4、然后在弹出来的窗口中点击类型,输入“YYYYMM”,回车确定就可以了。

参考技术A

时间格式YYYYMM是四位数字的年份和两位数字的月份,例如201905。

时间格式的不同样式:

1、以在excel表格的时间格式显示为例,首先在空白单元格中点击鼠标右键,在弹出的选项中点击“设置单元格格式”。

2、然后在打开的设置格式对话框中点击“日期”选项。

3、可以看到其中有不同样式的日期格式显示样式,点击选择“2012/3/14”。

4、点击确定再在单元格中输入日期,即可将输入的日期变成设置好的日期格式。

5、如果选择“自定义”则可以设置需要的日期格式,例如输入“YYYYMM”,点击确定即可将日期显示变成“201902”。

参考技术B YYYY代表的是年,MM代表的月份

所以要求你输入的是年份的4位数,月份2位数
譬如:2011年1月: 201101
2011年11月: 201111本回答被提问者采纳
参考技术C 想这样2010-03的年月 参考技术D 年月

如何设置像'YYYYMM'这样的Postgresql默认值日期戳?

【中文标题】如何设置像\'YYYYMM\'这样的Postgresql默认值日期戳?【英文标题】:How to set a Postgresql default value datestamp like 'YYYYMM'?如何设置像'YYYYMM'这样的Postgresql默认值日期戳? 【发布时间】:2010-10-28 23:41:39 【问题描述】:

作为标题,如何将表格的列设置为当前年份和月份的默认值,格式为“YYYYMM”,例如今天的 200905?

【问题讨论】:

【参考方案1】:

请记住,日期的格式与存储无关。如果您需要以该格式存储日期,您将需要定义自定义数据类型或将其存储为字符串。然后您可以使用extract、类型转换和连接的组合来获得该格式。

但是,我怀疑您想存储日期并获取输出格式。所以,这样的事情会为你解决问题:

    CREATE TABLE my_table
    (
    id serial PRIMARY KEY not null,
    my_date date not null default CURRENT_DATE
    );

(CURRENT_DATE is basically a synonym for now() and a cast to date).

(编辑为使用 to_char)。

然后你可以得到你的输出:

SELECT id, to_char(my_date, 'yyyymm') FROM my_table;

现在,如果您确实确实需要将该字段存储为字符串并确保您始终可以使用的格式:

CREATE TABLE my_other_table
(
id serial PRIMARY KEY not null,
my_date varchar(6) default to_char(CURRENT_DATE, 'yyyymm')
);

【讨论】:

【参考方案2】:

以防万一 Milen A. Radev 没有时间发布他的解决方案,就是这样:

CREATE TABLE foo (
    key     int PRIMARY KEY,
    foo     text NOT NULL DEFAULT TO_CHAR(CURRENT_TIMESTAMP,'YYYYMM')
);

【讨论】:

像这样的另一个答案在哪里消失了?【参考方案3】:

你为什么要这样做?

恕我直言,您应该将日期存储为默认类型,并在需要时将其转换为所需格式。

您可以通过指定列的格式但使用视图来摆脱困境。其他方法我不知道。

已编辑:

说真的,在我看来,您应该在该表上创建一个日期类型的视图。我说的是这样的事情:

create table sample_table ( id serial primary key, timestamp date); 

create view v_example_table as select id, to_char(date, 'yyyymmmm');

并在您的应用程序中使用 v_example_table。

【讨论】:

因为我需要它。我有一个 php 应用程序,它运行并使用这些值查询数据库,“yyyymm”为“200801”、“200802”等。以检索数据 - 我认为将其作为默认值会比 ​​SELECT 更好字段 FROM 表 WHERE 列 BETWEEN timestamp1 AND timestamp2 我会使用已添加到回复中的解决方案来执行此操作。【参考方案4】:

感谢所有回答的人,感谢那些给我函数格式想法的人,我会好好研究它以备将来使用。

但是对于这种明确的情况,“特殊 yyyymm 字段”不被视为日期字段,而只是作为标签,o 用于匹配精确的年月研究值的任何内容;已经有另一个日期字段,带有完整的时间戳,但如果我需要 2008 年 1 月的所有行,我认为这样的选择会更快

SELECT  [columns] FROM table WHERE yearmonth = '200801'

而不是

SELECT  [columns] FROM table WHERE date BETWEEN DATE('2008-01-01') AND DATE('2008-01-31')

【讨论】:

【参考方案5】:

一种常见的误解是,您可以像这样进行非规范化以提高性能。使用date_trunc('month', date) 进行查询,如果您发现它运行缓慢,请为此添加索引表达式。

【讨论】:

【参考方案6】:

我从字面上理解你的问题。 因为你做不到。 无论如何,datestamp 至少同时有 "Y","M","D" 3 个元素。

表 8.10 显示了日期类型的一些可能输入。https://www.postgresql.org/docs/current/datatype-datetime.html#DATATYPE-DATETIME-DATE-TABLE。

Example     Description
1999-01-08  ISO 8601; January 8 in any mode (recommended format)
January 8, 1999     unambiguous in any datestyle input mode
1/8/1999    January 8 in MDY mode; August 1 in DMY mode
1/18/1999   January 18 in MDY mode; rejected in other modes
01/02/03    January 2, 2003 in MDY mode; February 1, 2003 in DMY mode; February 3, 2001 in YMD mode
1999-Jan-08     January 8 in any mode
Jan-08-1999     January 8 in any mode
08-Jan-1999     January 8 in any mode
99-Jan-08   January 8 in YMD mode, else error
08-Jan-99   January 8, except error in YMD mode
Jan-08-99   January 8, except error in YMD mode
19990108    ISO 8601; January 8, 1999 in any mode
990108  ISO 8601; January 8, 1999 in any mode
1999.008    year and day of year
J2451187    Julian date
January 8, 99 BC    year 99 BC

日期输出:

datestyle Setting   Input Ordering  Example Output
SQL, DMY    day/month/year  17/12/1997 15:37:16.00 CET
SQL, MDY    month/day/year  12/17/1997 07:37:16.00 PST
Postgres, DMY   day/month/year  Wed 17 Dec 07:37:16 1997 PST

【讨论】:

【参考方案7】:

没错。最好使用函数:

CREATE OR REPLACE FUNCTION yyyymm() RETURNS text
    LANGUAGE 'plpgsql' AS $$
DECLARE
    retval text;
    m integer;
BEGIN
    retval := EXTRACT(year from current_timestamp);
    m := EXTRACT(month from current_timestamp);
    IF m < 10 THEN retval := retval || '0'; END IF;
    RETURN retval || m;
END $$;

SELECT yyyymm();

DROP TABLE foo;
CREATE TABLE foo (
    key             int PRIMARY KEY,
    colname text DEFAULT yyyymm()
    );
INSERT INTO foo (key) VALUES (0);
SELECT * FROM FOO;

这给了我

 key | colname 
-----+---------
   0 | 200905

如有必要,请确保从 Unix 命令行运行 createlang plpgsql

【讨论】:

或者从 psql 中“创建语言 plpgsql”,这就是 createlang 所做的。

以上是关于请输入时间格式YYYYMM是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Microstrategy 从 YYYYMM 格式创建属性 Previoux 月份

如何设置像'YYYYMM'这样的Postgresql默认值日期戳?

js时间转换,能够把时间转换成yyyymmdd格式或yyyymm格式

如何在 Java 中将 yyyymm 数据格式解析为 Month、YYYY 格式?

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

在 Hive 中将 dd/mm/yyyy/hh/mm/ss 格式更改为 yyyymm