gpt4 book ai didi

javascript - 将Mysql TIME 数据类型转换为JS Date - Hibernate HQL?

转载 作者:行者123 更新时间:2023-11-29 18:17:30 26 4
gpt4 key购买 nike

我正在尝试将一个简单的 HQL 查询转换为可读的时间格式 (HH:MM),老实说,我在这里有点不知所措。

我的表定义(mysql)如下

  CREATE TABLE `Concert` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT 'Concert Id',
`stage_id` INT NOT NULL COMMENT 'Stage Id',
`concert_time` TIME NOT NULL COMMENT 'Concert Time (HH:MM)',
`band_id` INT NOT NULL COMMENT 'Band Id',
PRIMARY KEY (`id`),
FOREIGN KEY (stage_id) REFERENCES Stage (id),
FOREIGN KEY (band_id) REFERENCES Band (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

类模型:

public class Concert {

private int id;
@Temporal(TemporalType.TIMESTAMP)
private Timestamp concertTime;
private Stage stage;
private Band band;

DAO:

public List<Concert> getConcertsByStageId(int id){
Session session = sessionFactory.getCurrentSession();

Query q = session.createQuery("Select c.id, c.concertTime from Concert c where c.stage.id= :id");
q.setParameter("id", id);
List<Concert> concertList = (List<Concert>)q.list();
System.out.println("count: " + concertList.size());

return concertList;
}

我通过 AJAX 获取字符串输出,如“1508763630000”(也就是说,如果我使用 DATETIME 而不是日期,则在使用日期时我无法转换输出)。我想将该字符串转换为 JavaScript Date 对象,稍后我可以将其显示在我的 View 中。

我知道可以在 mysql 中使用 TIME_FORMAT() 函数,但这似乎在我的 HQL 查询中不起作用。我有机会用 JS 实现这个目标吗?或者我需要添加到我的 hibernate 查询中的任何内容??

提前致谢!

最佳答案

如果有人遇到类似的问题,我是这样解决的:

SQLQuery query = session.createSQLQuery("Select c.id, TIME_FORMAT(c.concert_time, '%H:%i'), c.band_id, "
+ "b.name, b.band_type, b.set_length, b.encore, b.relevance from Concert c left join Band b on b.id = c.band_id "
+ "where c.stage_id = :id");

query.setParameter("id", id);
List<Object[]> rows = query.list();
List<Concert> concertList = new ArrayList<Concert>();

然后迭代结果行来构造您的对象:

for(Object[] row : rows){

}

关于javascript - 将Mysql TIME 数据类型转换为JS Date - Hibernate HQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46900264/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com