在MYSQL中的单个列中仅存储MONTH和DATE

时间:2017-12-08 10:48:25

标签: mysql hibernate

您好我正在尝试将月份和日期存储在一个列中。

用例

我将数据转储到mysql中用于报告目的,报告是每月一次。

我稍后会使用Hibernate来检索数据

2 个答案:

答案 0 :(得分:0)

关于您希望使用的格式我并不完全清楚,但假设将月份存储为数字后跟日期并以某种分隔符分隔,则可以使用以下内容。只是第二个INSERT语句实际上是你所询问的存储。

尽管如此,如果您有合适格式的原始数据,我建议您使用单个日期时间列进行存储,并在必要时将其拆分为月份和日期,以便稍后恢复使用它

-- make a table to hold some dates
CREATE TABLE testdates ( thedate DATE DEFAULT NULL) ;

-- make a table to hold just the month and date in one column as requested
CREATE TABLE tbl_month_and_date (the_month_and_date VARCHAR(14) DEFAULT NULL ); 

-- put some dummy dates into the testdates table
INSERT INTO testdates (thedate)
VALUES
('2017-09-14'),
('2017-10-13'),
('2017-11-27'),
('2017-08-20');


-- insert the month and date into a single column in the tbl_month_and_date table
-- in this case separated my <space> <colon> <space>
INSERT INTO tbl_month_and_date (the_month_and_date)
SELECT CONCAT(MONTH(thedate),' : ', thedate)
FROM testdates;

    -- show what is now in tbl_month_and_date
SELECT the_month_and_date
FROM tbl_month_and_date

表tbl_month_and_date的内容现在是

the_month_and_date  
9 : 2017-09-14      
10 : 2017-10-1      
11 : 2017-11-2      
8 : 2017-08-20  

答案 1 :(得分:0)

最好使用TIMESTAMP进行报告,而不仅仅是日期,月份或两者。