Не отрабатывет if проверки времени на то что оно попадает в нужный интервал
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("не попали в указанный интервал ")}
}
Выходит ошибка
[root@p441022 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)
Данные получаю в таком формате
Daabase freeswitch Host: 127.0.0.1 Connect is GOOD
ID Клиента 1 Номер клиента 79095876084 DISPACH 6582 Время начала обзвона 02:00:00 Время окончания обзвона 23:00:00 Текущее время в формате Час Минута Секунда 16:38:06