使用java在mysql中的一行中的单个列中插入多个datetime值

时间:2016-05-23 08:39:15

标签: mysql date datetime datepicker

我需要在一行中插入多个数据时间值, 怎么做到这一点?

我搜索谷歌这个,我看到在单个查询解决方案中插入多行,但我需要在一个列和行中插入多个值。

我试过INSERT INTO table_name(date_column)VALUES(' 20-10-2011'),(' 20-10-2011'),(' 21-10 -2011'),(' 22-10-2011'),(' 23-10-2011'),(' 24-10-2011' );

但它会在多行中插入日期,我希望它们插入一行中的单列。

任何人都可以帮助我吗?

提前致谢。

更新:

我试过像

查询是:

    SELECT  
  *
FROM (                                   
  SELECT                                 
    employeeId,
    availabilityDate, 
    IF(timeOff=0,1,0) AS '0', 
    IF(timeOff=1,1,0) AS '1', 
    IF(timeOff=2,1,0) AS '2',
    IF(timeOff=3,1,0) AS '3',
    IF(timeOff=4,1,0) AS '4',
    IF(timeOff=5,1,0) AS '5',
    IF(timeOff=6,1,0) AS '6',
    IF(timeOff=7,1,0) AS '7',
    IF(timeOff=8,1,0) AS '8',
    IF(timeOff=9,1,0) AS '9',
    IF(timeOff=10,1,0) AS '10',
    IF(timeOff=11,1,0) AS '11'    
  FROM sample 
) AS test;

3 个答案:

答案 0 :(得分:2)

您不能在任何数据库的DateTime列中插入多个日期值。 或者,您可以使用varchar(XXX)或clob / blob数据类型的列,并在其中插入多个日期时间值(可以使用分隔符分隔,这样可以轻松地分别检索每个值)。 希望这会有所帮助。

谢谢!

答案 1 :(得分:1)

请删除Java标记,因为此问题与Java无关。

问题归结为你误解了一些事实。 SQL中的一个字段包含一个值。通过更改数据类型并使程序执行逻辑,您似乎可以包含多个值。

从您有限的例子中猜测,我怀疑您需要重新考虑您的数据结构。多个日期听起来像某种事件的日期以及你在关系表中放置的东西。

答案 2 :(得分:0)

您是否尝试使用查询执行此操作?如果是这样,我试图实现同样的目标,将多年合并为一个。

作为示例(连续插入所有相同的日期),您可以尝试;

INSERT INTO tableX( fx, fx, fx, singledate)
SELECT...
GROUP_CONCAT(DISTINCT(DATE_FORMAT(thedates '%d-%m-%Y'))),
etc...

另外,您的行必须采用文本格式。