記錄問題:mysql中datetime型別欄位在後臺讀取與前端展示
@Column(name = "createtime", length = 20)
private Date createTime;
2.兩種將資料傳到前端的方法
方法一:
List<Map<String, Object>> list=targetService.findAll();//這裡獲取到目標list,省略業務方法 List<Map<String, Object>> newList = new ArrayList<Map<String, Object>>(); for (Map<String, Object> li : list) { //String s = li.get("createtime").toString();//覆蓋Date物件為字串 //li.put("createtime", s); newList.add(task); } response.setHeader("Content-type", "text/html;charset=UTF-8"); response.setCharacterEncoding("UTF-8"); response.getWriter().print(JSONArray.fromObject(newList).toString());//資料發往前端
前端用$.post請求獲得資料:
$.post("/url",{key1:value1,key2:value2},function(res){
console.log(res);//這裡獲取到的日期是createtime:{"date":3,"hours":11,"seconds":4,"month":4,"nanos":0,"timezoneOffset":-480,"year":118,"minutes":6,"time":1525316764000,"day":4}
};
在不是非同步獲取的情況下使用thymeleaf模板引擎渲染資料:
<td th:text="${#dates.format(listist.createtime, 'yyyy-MM-dd HH:mm:ss')}">建立時間</td>//正確顯示時間為2018-05-03 15:01:10
而通過$.post請求獲取的話,由於得到日期的是一個物件(如註釋),顯示為[object,object],需要重新format為指定的格式2018-05-03 15:01:10。原因是:JSONArray.fromObject會把datetime物件轉換為json字串。
嘗試:
將Map<String, Object>中的createtime覆蓋為字串,即方法一註釋部分。將Date型別屬性轉換成字串,為2018-05-03 15:01:10.0多了“.0”,原因是從資料庫查詢的datetime時間精確到毫秒。
方法二:
類似方法一,用$.ajax請求得到的卻是一個時間戳:1525330869000。。。Why?
3.總結:
只有在非同步獲取資料庫datetime型別資料並渲染到頁面的時候會有這種問題,獲取到createtime:{"date":3,"hours":11,"seconds":4,"month":4,"nanos":0,"timezoneOffset":-480,"year":118,"minutes":6,"time":1525316764000,"day":4}或者時間戳,可以在前端js處理成要展示的格式,也可以像上面寫的直接後臺覆蓋該物件在map中的鍵值對。
以上是初次遇到該問題,後續再遇到補充。
相關推薦
記錄問題:mysql中datetime型別欄位在後臺讀取與前端展示
1.資料庫欄位型別為datetime,model裡:@Column(name = "createtime", length = 20) private Date createTime;2.兩種將資料傳到前端的方法方法一:List<Map<String, Objec
python將系統時間寫入mysql的datetime型別欄位
dt=datetime.datetime.now().strftime("%Y-%m-%d%H:%M:%S") models.ptask.date_changed=datetime.datetime.fromtimestamp(time.mktime(time.strpti
Incorrect datetime value: '' for column Mysql5.6 中datetime 型別欄位的插入問題
在5.0.45-community-nt-log中能正常執行的SQL,在5.6.21中不正常。 1. 1檢視資料庫版本 mysql> select database(), version(); +------------+-----------------------
MySQL中float型別欄位的顯示問題
由於受到版本和平臺的限制,同樣的SQL在不同的平臺上執行的結果可能會不一致。 影響:1. mysql在升級或遷移時可能會導致float型別的資料發生變化。 2. mysqldump建立的備份在slave上進行恢復,可能會遇到float型別的資料在master和slave上
mysql新建表datetime型別欄位不能設定當前預設時間解決方法
方法一: 由於MySQL目前欄位的預設值不支援函式,所以以create_time datetime default now() 的形式設定預設值是不可能的。代替的方案是使用TIMESTAMP型別代替DATETIME類 型。 TIMESTAMP列型別自動地用當前的日期和時間標
informix 中建立DateTime型別欄位
建立表如下: CREATE TABLE WORKORDER_VISIT_LOG ( VISIT_LOG_id VARCHAR(30) NOT NULL,VISIT_DATE Date year to day, VISIT_TIME DateTime year to se
MySQL資料庫中tinyint型別欄位讀取資料為true和false
vertx jdbc 取myaql資料也存在這樣的問題,按照如下在進行sql語句編寫時候加上*1就i可以了 今天遇到這麼一個問題,公司最近在做一個活動,然後資料庫需要建表,其中有個欄位是關於獎勵發放的狀態的欄位,結果讀取出來的值為true 一、解決讀取資料為true/
學習Discuz! X3.2記錄:自定義論壇帖子欄位,在門戶中顯示帖子列表
想製作一個類似58同城的網站,裡面的帖子欄位都是自定義的。在實際工作中,這種需求應該是非常普遍的,例如求職招聘,房產銷售,等等。 現在還不清楚實現過程是否正確,這裡記錄一下。 * 論壇——版塊管理,製作如下板塊。 * 論壇——分類資
MySql中的longtext欄位的返回問題
最近開發中用到了longtext這種欄位。在mysql中該欄位的最大長度為4G 如下圖所示 開發中遇到的一個問題就是。例如有個article表,然後我們的頁面要將資料以列表的形式展示到前端(只顯示幾個欄位,如作者,標題等等,例如放到table中顯示多條記錄),但是是將該表中的所有
Thinkphp中如何表達MYSQL中的某欄位不為空is not null
Thinkphp 的文件經常不夠完整的表達MYSQL的各種組合,很多東西需要被嘗試後才能知道,筆者就遇到過一個問題,MYSQL查詢語句中有個表示式is not null ,在thinkphp中就不能用“=” 或者簡單的eq等來表示。 有一種變相的處理方法就是直接把where中的array引數換成st
python中處理插入mysql中的bit欄位
mysql中有一個表goods,欄位較多,還有幾個bit型別的。按照我的一般辦法,是把引數定義成dict,如: goodsInfo = {} goodsInfo['id'] = self.get_argument('id',''
Mybatis框架--Ibatis框架踩坑01 -- Java中BigInteger型別欄位問題!
在Mybatis框架、 Ibatis框架中, 不支援Java中的 java.math.BigInteger 型別欄位, 支援 java.math.BigDecimal 型別欄位。若Java實體類中,使用 java.math.BigInteger 型別欄位,在
Mybatis處理DB2中Blob型別欄位的一種方法
簡單來說,就是把Blob欄位對應的屬性的型別設定為byte[],然後在對映xml中存的時候在該欄位出指定為Blob型別就可以了。 例子 EB_COMM_NEWS表中,CONTENT為BLOB型別 在實體類EbCommNews中,對應的屬性為private byte[] CON
Mysql中判斷一個欄位是不是為null注意點
今天查詢資料的時候,要查詢某一個欄位為null的情況,第一反應就是select * from xxx where xx = NULL; 這是不對的,資料是查不出來的,正確的應該是: se
mysql中實現按欄位部分升序,部分降序的方法
mysql order排序時可以通過asc引數實現升序,desc引數實現降序。 例如: 升序排序:select * from 表名 order by 欄位 asc (mysql預設是升序排列) 降序排序:select * from 表名 order by
Sql Server資料庫中Identity型別欄位的使用
大家在建立資料庫的時候肯定是經常使用Identity標識欄位型別的。下面就介紹兩個使用這種型別欄位的小技巧。 1.讓標識欄位從指定的數字開始計數: DBCC checkident (TableName,reseed,計數值-1) 如:讓customers表重新從1開始計數 d
jdbcTemplate更新mysql的blob型別欄位
import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.sq
MySql查詢int型別欄位作查詢條件注意事項
今天使用MySql查詢時,發現一個詭異的現象,id是int型別自增主鍵,傳入查詢為UUID隨機字串,居然查到了記錄,如圖: 研究發現,MySql以字串第一個字元開始遍歷,遇到非數字則結束,遍歷到的數字作為查詢條件,如上圖第一個字母前的數字“1”作為條件,查詢到Id為“1
mysql(自動新增系統時間)timestamp型別欄位的CURRENT_TIMESTAMP與ON UPDATE CURRENT_TIMESTAMP屬性
timestamp有兩個屬性,分別是CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP兩種,使用情況分別如下: 1.CURRENT_TIMESTAMP 當要向資料庫執行insert操作時,如果有個timestamp欄位屬性設為
Oracle中varchar2型別欄位長度限制使用問題
為紀念中華人民共和國建軍90週年,特此一篇,以此紀念,我軍威武!!!一、問題背景專案中商品釋出,卻沒有儲存成功。二、問題定位初步判斷向資料庫中儲存時出現了錯誤,檢視日誌檔案,由於日誌檔案過大就採用grep進行搜尋(再一次說明grep 的強大)其中 “ReserveProductService.update”