0

次のようにフォーマットされた時間列を持つデータセットを使用しています。

    {:time "00:00:00"}
    {:time "03:05:12"}
    {:time "09:45:14"}
    {:time "13:01:22"}
    {:time "19:29:31"}

これらの時間を見つけるために SQL クエリを実行しましたが、文字列を分割することによって、個別の時間のみを見つけることができる必要があります。私が試してみました:

    t(get (split (:time data)  #":") 0)

しかし、それは私が望むものを除いてデータベース内のすべてのデータを返します - 私は最初の後に時間を分割しようとしています:そして、分割の最初の要素のみを明確に保持します。

理想的には、「00」「03」「09」「13」「19」などの時間を返すだけですが、これを行う方法がわかりません。助けてくれてありがとう!

4

1 に答える 1

1

時間が最初の 2 文字以外になる理由がない限り、次のようにすることができます。

(subs (:time data) 0 2)

最初の文字の前にすべての文字が本当に必要:で、常に同じ位置にあるとは限らない場合でも、 を使用できますがsubs、 と組み合わせて使用​​でき.indexOfます。

(let [s (:time data)]
  (subs s 0 (.indexOf s ":")))
于 2013-10-10T09:37:39.597 に答える