S
S
Sergey2017-08-17 14:34:00
go
Sergey, 2017-08-17 14:34:00

Does not fulfill if work with time?

Does not work out if checks for time that it falls within the desired interval

package main
//https://4gophers.ru/articles/go-i-sql-bazy-dannyh/#.WZShtvlSCUl  работа с БД Pg
import (
  "fmt"  ///пакет стандартной библиотеки   Базовый пакет для форматирования функций ввода
  "time"  ///пакет для аботы со временем
  "database/sql"  ///пакет для работы с БД
  _ "github.com/lib/pq" //пакет для работы с БД
)
////указываю постоянные значения подключения к БД и сокету FreeSWITCH
const (
  DB_HOST		        = "127.0.0.1"
  DB_USER    	        = "postgres"
  DB_PASSWORD 	    = "postgres"
  DB_NAME     	    = "freeswitch"
)
////обьявляю глобальные переменные
var (
  err error
  id int
  client int
  id_dispach int
  db *sql.DB
  interval_time_start string
  interval_time_end string
  current_time string
)
/////функция проверки на ошибки
func checkErr(err error) {
  if err != nil {
    fmt.Println(err)
  }
}
///Функция отправки SQL запросов в БД
func sql_req()  {
  rows, err := db.Query("SELECT client,id FROM  dialer_golang WHERE state = 'called' ORDER BY RANDOM() LIMIT 1")
  if err != nil {fmt.Println(err)}
  defer rows.Close()
  for rows.Next() {
    rows.Scan(&client, &id)  ///декодирую элементы которые хочу получить в БД
    dialer_rows , err := db.Query("SELECT  id_dispatch FROM dialer_golang WHERE client = $1 and state = 'called'",client)
    if err != nil {fmt.Println(err)
      return
    }
    defer dialer_rows.Close()  ///закрываем коннект к Базе данных
    for dialer_rows.Next() {
      dialer_rows.Scan(&id_dispach)
    }
    data_rows , err := db.Query("SELECT interval_time_start,interval_time_end FROM  dialer_golang WHERE client = $1 and state = 'called' ",client)
    checkErr(err)  ///функция обработки ошибок
    defer data_rows.Close()  ///закрываем коннект к Базе данных
    for data_rows.Next() {
      data_rows.Scan(&interval_time_start,&interval_time_end)
    }
      }
}
func main()  {
  //time.Sleep(300 * time.Millisecond)   ///команда задержки sleep
  // подключение к  Базе данных
  db_property := "host=" + DB_HOST + " user=" + DB_USER + " password=" + DB_PASSWORD + " dbname=" + DB_NAME + " sslmode=disable"
  db, err = sql.Open("postgres", db_property)  ///https://toster.ru/q/452264
  err = db.Ping()
  if err != nil {fmt.Println("Error: IS NOT Connect  for  " + DB_NAME + " Host: " + DB_HOST)} else {fmt.Println("Database " + DB_NAME + " Host: " + DB_HOST + " Connect is GOOD")} ///проверка на ошибку если вернет ошибку то  выведет то что коннекта к бд нет
  defer db.Close() ///закрываем коннект к Базе данных
  sql_req()  ///вызываю функцию без параметров
  ////вывожу текущее время которое есть в системе
  current_time := time.Now().Format("15:04:05")  ///Вывожу текущее время в нужном мне формате , так чтобы формат БД  и формат вывода был единым
  fmt.Println("ID Клиента",id,"Номер клиента",client,"DISPACH",id_dispach,"Время начала обзвона ",interval_time_start,"Время окончания обзвона",interval_time_end,"Текущее время в формате Час Минута Секунда",current_time)  ///////получил все переменные которые будут нужны для системы автообзвона
    ////после того как получуили все необходимые данные для вызова необходимо сделать проверку попадает ли данное время в укаханный интервал
  if  interval_time_start.Before(current_time)  && interval_time_end.After(current_time) {
    fmt.Println("Мы попали в указанный интервал ")
  } else {
  fmt.Println("не попали в указанный интервал ")}
}

I get an error
[[email protected] script]# go run daemon.go
# command-line-arguments
./daemon.go:69: current_time.Before undefined (type string has no field or method Before)
./daemon.go:69: interval_time_end.After undefined (type string has no field or method After)

I receive data in the following format
Daabase freeswitch Host: 127.0.0.1 Connect is GOOD
Client ID 1 Client number 79095876084 DISPACH 6582 Call start time 02:00:00 Call end time 23:00:00 Current time in the format Hour Minute Second 16:38: 06

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question