如何在HANA中格式化日期

6

我需要在HANA SQL中格式化日期,但我不知道如何操作。类似这样:

 SELECT
 DATE_FORMAT(DATAS,'%Y-%m') as Dat 
,sum(SALES_VALUE) as Venda
,sum(SALES_QTY) as Qtd
,sum(SALES_VALUE) / sum(SALES_QTY) as  Preco
FROM looqdata.data_store_sales as s
inner join
looqdata.data_store_cad as c
on s.STORE_CODE = c.STORE_CODE
where 1=1
and DATAS between '2016-01-04' and '2016-02-10'
and s.STORE_CODE in  (1,2) 
group by DATE_FORMAT(DATAS,'%Y-%m') 
2个回答

13

SAP HANA中的日期数据类型,就像大多数其他DBMS一样,没有与其相关联的特定格式。格式是输出渲染过程的一部分,通常涉及地区设置。您可以在我的博客中查看相关内容。

如果您想强制使用特定格式并接受数据类型变为字符串数据类型,则可以使用转换函数,如TO_VARCHAR()参考文档链接

例如:

SELECT 
      TO_VARCHAR (TO_DATE('2009-12-31'), 'YYYY/MM/DD') "to varchar" 
FROM DUMMY;

将日期字符串从格式 YYYY-MM-DD 转换为日期格式 YYYY/MM/DD


5
如Lars所解释的,您可以使用TO_VARCHAR()函数将日期表达式转换为所需格式。
如果要转换的日期已经在数据类型为DATE的列中,则不需要进行额外的TO_DATE()转换。在这种情况下,您可以直接在SQLScript中使用TO_VARCHAR()进行日期格式转换。
请在您的开发SAP HANA数据库上检查以下SQLScript代码。
create column table ProductValue (
Product      varchar(10),
Date     date,
Value  int
);
insert into ProductValue values ('P1','20171001',10);

select *, TO_VARCHAR(Date,'DD.MM.YY')  from ProductValue;
select *, TO_VARCHAR(Date,'DD.MM.YYYY')  from ProductValue;
select *, TO_VARCHAR(Date,'YYYY-MM')  from ProductValue;
select *, TO_VARCHAR(Date,'YYYY-MM-DD')  from ProductValue;
select *, TO_VARCHAR(Date,'YYYY/MM/DD')  from ProductValue;
select *, TO_VARCHAR(TO_DATE(Date),'YYYY/MM/DD')  from ProductValue;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接