Answer the question
In order to leave comments, you need to log in
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("не попали в указанный интервал ")}
}
[[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)
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question