mysql時間戳轉換爲字符串類型 sql語句含有函數的包裝方法

不想看廢話的直接點到3.0版本

目錄

mysql時間戳轉換爲字符串類型

sql3.0版本 

MySQl的一些零碎知識點

1.datetime格式無法設置timestamp解決辦法:

2.主鍵自增

mysql設置id列自增

mysql設置id列從某個指定值開始自增

3.mysql分頁查詢


mysql時間戳轉換爲字符串類型

mysql是5.6版本

表結構如下,表名爲msgBoard,其中date列是時間列,列類型是timestamp,默認值爲當前時間,java中的對應類的date屬性爲String類型

我希望取出msgBoard表中的數據顯示到前端頁面,此時遇到了問題。

1.0版本的sql語句:

select id,author,msg,date from msgBoard

毫無疑問,這條語句在mysql中運行絕無問題,但我將其拷貝到java程序中運行,報錯如下:

java.lang.IllegalArgumentException: Can not set java.lang.String field org.lanqiao.msg.entity.msgBoard.date to java.sql.Timestamp

意思是timestamp無法存到String類型的變量中

我... fine.小問題,百度一下mysql時間戳轉換字符串的函數就可以了

於是有了sql2.0版本:

select id,author,msg,DATE_FORMAT(date, '%Y-%m-%d %T') from msgBoard

毫無疑問,這個語句放在mysql運行也是沒毛病。但我運行java程序的時候,還是報錯了,報錯如下:

java.lang.NoSuchFieldException: DATE_FORMAT(date, '%Y-%m-%d %T')

java告訴我它找不到這個屬性。

 我這個小白實在無法揣測程序的心思。

這個問題於是從下午開始就困擾到晚上都沒解決。幾乎放棄。期間把我的mysql5.5卸載了重裝成了5.6還是不行,要是再解決不了我可能原地爆炸。

BUT

萬能的百度啊!感謝博主大大們!!!

博文鏈接:https://blog.csdn.net/qq_37707251/article/details/83093832 根據這個博主的講解,誕生了

sql3.0版本 

也就是說,時間戳的轉換你需要包裝一下,用as給他命別名爲原來表中的那個列的名字,這樣才能找

比如這裏,我的列名字是date,那使用函數date_format(date, '%Y-%m-%d %T')之後還要命別名爲date

select id,author,msg,date_format(date, '%Y-%m-%d %T') AS date from msgBoard

成果:

 

完結撒花。以上,全是廢話嘻嘻。

 

另:

MySQl的一些零碎知識點

1.datetime格式無法設置timestamp解決辦法:

設計表的時候不用填寫default,直接在查詢界面用sql語句添加約束:

alter table msgBoard
MODIFY column date datetime default CURRENT_TIMESTAMP COMMENT '創建時間'

這樣就行。但是事實證明,取不出來時間就是sql語句的問題,和那個timestamp沒關係,可憐它被我罵了一下午,我一直以爲是這個的問題。 

 

2.主鍵自增

mysql設置id列自增

  alter table msgBoard modify column id int not null auto_increment ;

問題來了,設置完自增後,一直添加自然沒問題, 但如果中間刪除了數據,id列就不是連續的了,這樣很不開心。雖然我現在不知道怎麼設置自動改成連續,但可以手動改呀嘻嘻,所以:

mysql設置id列從某個指定值開始自增

alter table msgboard auto_increment=8

 

3.mysql分頁查詢

select * from TABLE limit pageNum,pageSize

 

撒花!!!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章