如何进行自动创建另一列并转换日期格式的查询?

时间:2017-07-28 07:56:10

标签: mysql database

我的calendar_table中有一个日期列属性,我存储了我的日期,我想添加另一列date_name,然后自动填充所有列,如下所示。

日期: 2017-07-28 date_name 7月28日,星期五

目前正在使用heidiSQL(MySQL)

我在下面尝试了查询,但它说有语法错误

SELECT [date],
DATENAME(day, [date]) + ' ' + DATENAME(month, [date]) + ', ' + DATENAME(DW, [date])
FROM [dbo].[DatesTable]( -- current month calendar table
DATEADD(dd,1,EOMONTH (GETDATE(), -1)),
EOMONTH (GETDATE())
) 


 Select cd.date
 from calendar_table as cd
 INSERT into cd.date_name values (
 CAST(DATEPART(DAY,DateTime) AS VARCHAR(2)) + ' ' + CAST(DATENAME(MONTH,DateTime) AS VARCHAR(12)) + ','+ CAST(DATENAME(DAY,DateTime) AS VARCHAR(8)))

1 个答案:

答案 0 :(得分:0)

如果您想将日期从默认格式yyyy-mm-dd(例如:2017-07-28)转换为任何其他 text 格式,例如28 July, Friday,您必须使用{ {3}}功能。

示例

SELECT @dt:=CAST( '2017-07-28' AS DATE ) AS dt
     , DATE_FORMAT( @dt, '%d %M, %W' ) AS formatted_date_string

输出将采用以下格式:

+------------+-----------------------+
| dt         | formatted_date_string |
+------------+-----------------------+
| 2017-07-28 | 28 July, Friday       |
+------------+-----------------------+

您可以在交易中使用相同或类似的格式 但我的建议不是将格式化的日期字符串存储到数据库中,而是将日期和时间存储为默认格式。您可以在这些字段上应用格式以进行视图和打印。