linux日期格式转换yyyymmdd,将年和月(“yyyy-mm”格式)转换为日期?

我认为@ ben-rollert的解决方案是一个很好的解决方案。

如果要在新包中的函数中使用此解决方案,则必须小心。

在开发包时,建议使用语法packagename::function_name()(请参阅http://kbroman.org/pkg_primer/pages/depends.html)。

在这种情况下,您必须使用zoo库定义的as.Date()版本。

这是一个例子:

> devtools::session_info()

Session info ----------------------------------------------------------------------------------------------------------------------------------------------------

setting value

version R version 3.3.1 (2016-06-21)

system x86_64, linux-gnu

ui RStudio (1.0.35)

language (EN)

collate C

tz

date 2016-11-09

Packages --------------------------------------------------------------------------------------------------------------------------------------------------------

package * version date source

devtools 1.12.0 2016-06-24 CRAN (R 3.3.1)

digest 0.6.10 2016-08-02 CRAN (R 3.2.3)

memoise 1.0.0 2016-01-29 CRAN (R 3.2.3)

withr 1.0.2 2016-06-20 CRAN (R 3.2.3)

> as.Date(zoo::as.yearmon("1989-10", "%Y-%m"))

Error in as.Date.default(zoo::as.yearmon("1989-10", "%Y-%m")) :

do not know how to convert 'zoo::as.yearmon("1989-10", "%Y-%m")' to class “Date”

> zoo::as.Date(zoo::as.yearmon("1989-10", "%Y-%m"))

[1] "1989-10-01"因此,如果您正在开发包,那么最佳做法是使用:

zoo::as.Date(zoo::as.yearmon("1989-10", "%Y-%m"))

在SQL中,将YYYYMMDD格式日期字符串转换YYYY-MM-DD格式通常需要使用字符串函数来插入短横线。不同的数据库系统可能会有不同的函数来实现这一功能。以下是几种常见数据库系统中实现此转换的方法: 1. MySQL: 在MySQL中,可以使用`DATE_FORMAT()`函数来格式日期: ```sql SELECT DATE_FORMAT(STR_TO_DATE(YYYYMMDD, '%Y%m%d'), '%Y-%m-%d') AS formatted_date; ``` 这里`STR_TO_DATE()`函数先将字符串按照`'%Y%m%d'`的格式解析为日期,然后`DATE_FORMAT()`函数将其格式化为`'%Y-%m-%d'`的格式。 2. SQL Server: 在SQL Server中,可以使用`CONVERT()`函数和字符串函数来实现: ```sql SELECT REPLACE(CONVERT(VARCHAR, CAST(YYYYMMDD AS DATE), 112), '.', '-') AS formatted_date; ``` 这里`CAST(YYYYMMDD AS DATE)`将字符串转换日期类型,`CONVERT()`函数将日期转换为字符串格式,最后`REPLACE()`函数将点号替换为短横线。 3. PostgreSQL: 在PostgreSQL中,可以使用`to_date()`函数来解析字符串,并使用`TO_CHAR()`函数来格式化: ```sql SELECT TO_CHAR(to_date(YYYYMMDD, 'YYYYMMDD'), 'YYYY-MM-DD') AS formatted_date; ``` 4. Oracle: 在Oracle中,可以使用`TO_DATE()`函数将字符串转换日期,然后使用`TO_CHAR()`函数进行格式化: ```sql SELECT TO_CHAR(TO_DATE(YYYYMMDD, 'YYYYMMDD'), 'YYYY-MM-DD') AS formatted_date FROM dual; ``` 请根据您使用的具体数据库系统选择合适的方法。注意替换`YYYYMMDD`为您的实际日期变量或字段名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值