sam*_*140 6 mysql sql oracle mysql-workbench sqlyog
我有一个表tine_by_day
,我知道如何使用TO_CHAR
in 中的函数oracle
,但是如果我使用 in ,如何获得相同的输出MySQL
?
MySQL
for中有转换函数吗TO_CHAR()
?
我已经尝试过date_format
,to_char
但没有得到足够的结果。
SELECT
to_char(t.the_date,'mm-DD-YYYY') Date,
SUM(sf7.unit_sales) UnitSales,
SUM(sf7.store_sales) StoreSales,
SUM(sf7.store_cost) StoreCost
FROM time_by_day t INNER JOIN sales_fact_1997 sf7 ON t.time_id=sf7.time_id
WHERE
to_char(t.the_date,'YYYY-MM-DD')>='2012-01-01'
AND
to_char(t.the_date,'YYYY-MM-DD')<='2012-01-07'
GROUP BY t.the_date
ORDER BY t.the_date
Run Code Online (Sandbox Code Playgroud)
在 SQL Server 中,您通常会使用该convert()
函数,但它并不像to_char()
. 对于您的查询,您只需要在select
子句中使用它:
SELECT convert(varchar(10), t.the_date, 110) as Date,
SUM(sf7.unit_sales) as UnitSales,
SUM(sf7.store_sales) as StoreSales,
SUM(sf7.store_cost) as StoreCost
FROM time_by_day t INNER JOIN
sales_fact_1997 sf7
ON t.time_id = sf7.time_id
WHERE t.the_date >='2012-01-01' AND
t.the_date <= '2012-01-07'
GROUP BY t.the_date
ORDER BY t.the_date;
Run Code Online (Sandbox Code Playgroud)
SQL Server通常会将ISO 标准 YYYY-MM-DD 视为日期并自动进行转换。唉,有一个特定的国际化设置将其视为 YYYY-DD-MM。无论这些设置如何,以下内容都应该正确解释(尽管我会使用上面的形式):
WHERE t.the_date >= cast('20120101' as date) AND
t.the_date <= cast('20120107' as date)
Run Code Online (Sandbox Code Playgroud)
编辑:
在 MySQL 中,您只需使用date_format()
:
SELECT date_format(t.the_date, '%m-%d-%Y') as Date,
SUM(sf7.unit_sales) as UnitSales,
SUM(sf7.store_sales) as StoreSales,
SUM(sf7.store_cost) as StoreCost
FROM time_by_day t INNER JOIN
sales_fact_1997 sf7
ON t.time_id = sf7.time_id
WHERE t.the_date >= date('2012-01-01') AND
t.the_date <= date('2012-01-07')
GROUP BY t.the_date
ORDER BY t.the_date;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
62708 次 |
最近记录: |