2017-07-04 7 views
0

私はSlick FRMを使ってSQLコードを生成し、MySQLサーバに接続しています。Slick FRMのSQLのNOW()

私はScalaのコード内からMySQLサーバが提供するSQLでNOW()関数を呼び出すための方法を見つけることができなかったが、Datetimeオブジェクトを生成し、そのサーバの現在の時間を得ることになりScalaのコードでそのnow()メソッドを呼び出す必要がありますSQLコードでNOW()を呼び出して取得するMySQLのサーバー時間ではなく、Scalaアプリケーションを実行します。

誰でも光を当てることはできますか?ありがとう。

このような何かが動作するはずですあなたはあなたのケースでは User-Defined Features

を探している

答えて

1

val now = SimpleLiteral[java.sql.Date]("NOW") 

EDITは

GitHub issueによると、他のユースケースでは、ユーザー定義関数を使用することはできませんクエリよりもだからあなたの問題には合っていないようです。

その場合、私はあなたにはplain SQLを使用しなければならないと思います。

sqlu"""update TAoneBattSysRealtime set updateTime = NOW() where hwid = ${r.hwid}""" 
+0

ありがとう@thwiegan。あなたの参照ごとにドキュメントをチェックしました。今私は問題の下で遭遇しました。最初に、あなたの提案の一部を変更しました:データ - >タイムスタンプ。私はソースコードを生成するためにSlick codegenを使用していたので、オブジェクト名はTAoneBattSysRealtimeでした。 val now = SimpleLiteral [java.sql.Timestamp]( "NOW"); TAoneBattSysRealtime.filter(row⇒row.hwid === r.hwId).map(x⇒ x.updateTime).update(now) 上記の行にコンパイルエラーが発生しました。エラー:(183,26)type ismatch; が見つかりました:slick.lifted.Rep [java.sql.Timestamp] required:java.sql.Timestamp Some(now))。私はnow()の戻り値の型を解除しませんでした。 –

+0

@ZJLyu私の編集を見る – thwiegan