我需要在一行中插入多个数据时间值, 怎么做到这一点?
我搜索谷歌这个,我看到在单个查询解决方案中插入多行,但我需要在一个列和行中插入多个值。
我试过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;
答案 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...
另外,您的行必须采用文本格式。