继开 | 博客

热爱生活,努力学习,实现自己的价值


  • 短诗的序

  • 迷途自渡

  • 寒星三两

  • 林深见鹿

  • 记昨日书

  • 顾探往昔

Sqlserver获取日期的问题

发表于 2021-09-17
字数统计: 1,069 字 | 阅读时长 ≈ 6 min

sqlserver 中一些常用的日期转换

一、日期格式转换:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Select CONVERT(varchar(100), GETDATE(), 0): 09 16 2021 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 09/16/21
Select CONVERT(varchar(100), GETDATE(), 2): 21.09.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/09/21
Select CONVERT(varchar(100), GETDATE(), 4): 16.09.21
Select CONVERT(varchar(100), GETDATE(), 5): 16-09-21
Select CONVERT(varchar(100), GETDATE(), 6): 16 09 21
Select CONVERT(varchar(100), GETDATE(), 7): 09 16, 21
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 9): 09 16 2021 10:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10): 09-16-21
Select CONVERT(varchar(100), GETDATE(), 11): 21/09/16
Select CONVERT(varchar(100), GETDATE(), 12): 210916
Select CONVERT(varchar(100), GETDATE(), 13): 16 09 2021 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20): 2021-09-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21): 2021-09-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22): 09/16/21 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23): 2021-09-16
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 25): 2021-09-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100): 09 16 2021 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101): 09/16/2021
Select CONVERT(varchar(100), GETDATE(), 102): 2021.09.16
Select CONVERT(varchar(100), GETDATE(), 103): 16/09/2021
Select CONVERT(varchar(100), GETDATE(), 104): 16.09.2021
Select CONVERT(varchar(100), GETDATE(), 109): 16-09-2021
Select CONVERT(varchar(100), GETDATE(), 121): 16 09 2021
Select CONVERT(varchar(100), GETDATE(), 107): 09 16, 2021
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 109): 09 16 2021 10:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110): 09-16-2021
Select CONVERT(varchar(100), GETDATE(), 111): 2021/09/16
Select CONVERT(varchar(100), GETDATE(), 112): 20210916
Select CONVERT(varchar(100), GETDATE(), 113): 16 09 2021 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120): 2021-09-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121): 2021-09-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126): 2021-09-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM

二、常用

1
2
3
Select CONVERT(varchar(100), GETDATE(), 23)	   --2021-09-16 
Select CONVERT(varchar(100), GETDATE(), 112) --20210916
Select CONVERT(varchar(100), GETDATE(), 120) --2021-09-16 11:32:55

–各国指定日期格式:

SELECT CONVERT(varchar(10),getdate(),120)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
101			美国		mm/dd/yyyy 
102 ANSI yy.mm.dd
103 英国/法国 dd/mm/yy
104 德国 dd.mm.yy
105 意大利 dd-mm-yy
106 dd mon yy
107 mon dd, yy
108 hh:mm:ss
109 mon dd yyyy hh:mi:ss:mmmAM(或 PM)
110 美国 mm-dd-yy
111 日本 yy/mm/dd
112 ISO yymmdd
113 毫秒 dd mon yyyy hh:mm:ss:mmm(24h)
114 hh:mi:ss:mmm(24h)
120 yyyy-mm-dd hh:mm:ss[.fff]
121 yyyy-mm-dd hh:mm:ss[.fff]
126 ISO8601 yyyy-mm-dd Thh:mm:ss:mmm
130 科威特 dd mon yyyy hh:mi:ss:mmmAM
131 科威特 dd/mm/yy hh:mi:ss:mmmAM

三、DATENAME()

返回代表指定日期的指定日期部分的字符串。

语法
DATENAME ( datepart , date )

值 缩 写(Sql Server) Access 和 ASP 说明
year Yy yyyy 年 1753 ~ 9999
Quarter Qq q 季 1 ~ 4
Month Mm m 月1 ~ 12
Day of year Dy y 一年的日数,一年中的第几日 1-366
Day Dd d 日,1-31
Weekday Dw w 一周的日数,一周中的第几日 1-7
Week Wk ww 周,一年中的第几周 0 ~ 51
Hour Hh h 时0 ~ 23
Minute Mi n 分钟0 ~ 59
Second Ss s 秒 0 ~ 59
Millisecond Ms - 毫秒 0 ~ 999

select GETDATE() as ‘当前日期时间’,
DateName(year,GetDate())+’-‘+DateName(month,GetDate())+’-‘+DateName(day,GetDate()) as ‘当前日期’,
DateName(quarter,GetDate()) as ‘第几季度’,
DateName(week,GetDate()) as ‘一年中的第几周’,
DateName(DAYOFYEAR,GetDate()) as ‘一年中的第几天’,
DateName(year,GetDate()) as ‘年’,
DateName(month,GetDate()) as ‘月’,
DateName(day,GetDate()) as ‘日’,
DateName(hour,GetDate()) as ‘时’,
DateName(minute,GetDate()) as ‘分’,
DateName(second,GetDate()) as ‘秒’,
DateName(MILLISECOND,GetDate()) as ‘豪秒’,
DateName(WEEKDAY,GetDate()) as ‘星期几’

select GETDATE() as ‘当前日期时间’,
DatePart(year,GetDate())+’-‘+DatePart(month,GetDate())+’-‘+DatePart(day,GetDate()) as ‘当前日期’,
DatePart(quarter,GetDate()) as ‘第几季度’,
DatePart(week,GetDate()) as ‘一年中的第几周’,
DatePart(DAYOFYEAR,GetDate()) as ‘一年中的第几天’,
DatePart(year,GetDate()) as ‘年’,
DatePart(month,GetDate()) as ‘月’,
DatePart(day,GetDate()) as ‘日’,
DatePart(hour,GetDate()) as ‘时’,
DatePart(minute,GetDate()) as ‘分’,
DatePart(second,GetDate()) as ‘秒’,
DatePart(MILLISECOND,GetDate()) as ‘豪秒’,
DatePart(WEEKDAY,GetDate()) as ‘星期几’

实际问题以及解决办法

问题需要获取yyyymm格式的月份

1
select DateName(year,GetDate())+DateName(month,GetDate()) as '当月'

结果返回

1
2021September

经过查询,是数据库的编码字符不是中文(网络查到的原因,是否可信,待验证)
解决办法比较复杂,用其他方式实现

1
select CONVERT(VARCHAR(6),GETDATE(),112) AS  '当月'

结果返回

1
202109

Linux下安装nodejs

发表于 2021-09-16
字数统计: 123 字 | 阅读时长 ≈ 1 min

CentOS7一键安装nodejs
在CentOS 7机器上安装Node.js有几种不同的方法。 在本教程的第一部分中,我们将从NodeSource存储库安装Node.js。

首先,我们需要启用NodeSource存储库:

1
curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash -

当前的LTS版本的Node.js是8.x. 如果您想安装版本12,只需把setup_8.x更改setup_12.x即可。

一旦启用了NodeSource存储库,请键入以下命令来安装Node.js和npm:

1
sudo yum install -y nodejs

Windows端口转发

发表于 2021-09-14
字数统计: 312 字 | 阅读时长 ≈ 2 min

操作系统:windows 64位

windows端口转发

需要通过访问127.0.0.1的23306端口,访问192.168.244.18:3306 上的mysql 服务

执行命令:

1
netsh  interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=23306 connectaddress=192.168.244.128 connectport=3306

执行结果(没有任何返回):

1
2
3
C:\Windows\system32>netsh  interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=23306 connectaddress=192.168.244.128 connectport=3306

C:\Windows\system32>

listenaddress 要监听的ip地址,需要访问的地址。
connectadress 要链接的服务器地址,真实的服务器地址,也就是RealServer
port 就是端口。

注意以管理员身份打开cmd
否则会出现以下提示:

1
2
C:\Users\dell>netsh  interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=23306 connectaddress=192.168.244.128 connectport=3306
请求的操作需要提升(作为管理员运行)。

要查看所有的侦听端口

1
netsh interface portproxy show all

执行结果:

1
2
3
4
5
6
7
C:\Windows\system32>netsh interface portproxy show all

侦听 ipv4: 连接到 ipv4:

地址 端口 地址 端口
--------------- ---------- --------------- ----------
127.0.0.1 23306 192.168.244.128 3306

要删除某条规则

1
netsh interface portproxy delete v4tov4 listenaddress=127.0.0.1 listenport=23306

执行结果(没有任何返回):

1
2
3
C:\Windows\system32>netsh interface portproxy delete v4tov4 listenaddress=127.0.0.1 listenport=23306

C:\Windows\system32>

Navicat连接sqlserver更换端口注意用英文逗号不是用冒号

发表于 2021-09-13
字数统计: 43 字 | 阅读时长 ≈ 1 min

如题

若修改了SQL server的端口为21433,

正确的连接设置应该是

1
127.0.0.1,21433

错误的连接设置如下

1
127.0.0.1:21433

Docker-Compose安装postgres库

发表于 2021-09-09
字数统计: 206 字 | 阅读时长 ≈ 1 min

正文

yml文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#mkdir -p /data/my-test-postgres/{conf,data}
#docker-compose -f my-test-postgres.yml up -d
#docker-compose.yml 配置文件如下
version: '2'
services:
#服务名称
my-test-postgres:
#容器名称
container_name: my-test-postgres
#镜像名称
image: postgres:9.6
#总是重启后启动
restart: always
#端口映射
ports:
- 5432:5432
#挂载
volumes:
- /data/my-test-postgres/data:/var/lib/postgresql/data
#环境变量
environment:
#root 用户名
POSTGRES_USER: root
#root 密码
POSTGRES_PASSWORD: root
#数据存储文件夹
PGDATA: /var/lib/postgresql/data/pgdata
networks:
my-net:
ipv4_address: 172.100.0.5
networks:
my-net:
external: true

注意需要提前建网桥

1
docker network create --subnet=172.100.0.0/16 my-net

也可把配置文件中的networks的配置都删除,使用docker默认网桥

判断List集合中对象的某个字段是否存在重复值

发表于 2021-09-08
字数统计: 1,333 字 | 阅读时长 ≈ 6 min

操作系统:Centos6.4 64位

工具:Xftp5、Xshell5

一、下载jdk8

方法一:官网手动下载

下载Linux环境下的jdk1.8

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

目前在官网下载低于jdk1.8的java jdk的时候需要登陆,这边分享一个账号,方便下载
账号:2696671285@qq.com
密码:Oracle123
账号提供者:https://blog.csdn.net/WNsshssm/article/details/84315519

方法二:在线下载

wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz

Oracle官网用Cookie限制下载方式,使得眼下只能用浏览器进行下载,使用其他方式可能会导致下载失败。

二、源码包解压

使用xftp将jdk源码包,上传到/usr/local(软件一般安装到这个目录)

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@localhost local]# ll
总用量 139800
drwxr-xr-x. 2 root root 4096 9月 7 12:23 bin
drwxr-xr-x. 2 root root 4096 4月 11 2018 etc
drwxr-xr-x. 2 root root 4096 4月 11 2018 games
drwxr-xr-x. 2 root root 4096 4月 11 2018 include
-rw-r--r--. 1 root root 143111803 9月 8 08:41 jdk-8u261-linux-x64.tar.gz
drwxr-xr-x. 2 root root 4096 4月 11 2018 lib
drwxr-xr-x. 2 root root 4096 4月 11 2018 lib64
drwxr-xr-x. 2 root root 4096 4月 11 2018 libexec
drwxr-xr-x. 2 root root 4096 4月 11 2018 sbin
drwxr-xr-x. 5 root root 4096 9月 7 03:47 share
drwxr-xr-x. 2 root root 4096 4月 11 2018 src

使用解压命令解压

1
[root@localhost local]# tar -zxvf jdk-8u261-linux-x64.tar.gz

解压完成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@localhost local]# ll
总用量 139804
drwxr-xr-x. 2 root root 4096 9月 7 12:23 bin
drwxr-xr-x. 2 root root 4096 4月 11 2018 etc
drwxr-xr-x. 2 root root 4096 4月 11 2018 games
drwxr-xr-x. 2 root root 4096 4月 11 2018 include
drwxr-xr-x. 8 10143 10143 4096 6月 18 2020 jdk1.8.0_261
-rw-r--r--. 1 root root 143111803 9月 8 08:41 jdk-8u261-linux-x64.tar.gz
drwxr-xr-x. 2 root root 4096 4月 11 2018 lib
drwxr-xr-x. 2 root root 4096 4月 11 2018 lib64
drwxr-xr-x. 2 root root 4096 4月 11 2018 libexec
drwxr-xr-x. 2 root root 4096 4月 11 2018 sbin
drwxr-xr-x. 5 root root 4096 9月 7 03:47 share
drwxr-xr-x. 2 root root 4096 4月 11 2018 src

顺手删掉jdk源码包

1
[root@localhost local]# rm -rf jdk-8u261-linux-x64.tar.gz

三、 配置jdk环境变量

/etc/profile文件的改变会涉及到系统的环境,也就是有关Linux环境变量的东西

所以,我们要将jdk配置到/etc/profile,才可以在任何一个目录访问jdk

1
[root@localhost local]# vim /etc/profile

按i进入编辑,在profile文件尾部添加如下内容

1
2
3
4
5
6
7
8
9
10

export JAVA_HOME=/usr/local/jdk1.8.0_261 #jdk安装目录

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH

export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin

export PATH=$PATH:${JAVA_PATH}

Esc –> :wq

保存并退出编辑

通过命令source /etc/profile让profile文件立即生效

1
[root@localhost local]# source /etc/profile

四、 测试是否安装成功

1
[root@localhost local]# javac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[root@localhost local]# javac
用法: javac <options> <source files>
其中, 可能的选项包括:
-g 生成所有调试信息
-g:none 不生成任何调试信息
-g:{lines,vars,source} 只生成某些调试信息
-nowarn 不生成任何警告
-verbose 输出有关编译器正在执行的操作的消息
-deprecation 输出使用已过时的 API 的源位置
-classpath <路径> 指定查找用户类文件和注释处理程序的位置
-cp <路径> 指定查找用户类文件和注释处理程序的位置
-sourcepath <路径> 指定查找输入源文件的位置
-bootclasspath <路径> 覆盖引导类文件的位置
-extdirs <目录> 覆盖所安装扩展的位置
-endorseddirs <目录> 覆盖签名的标准路径的位置
-proc:{none,only} 控制是否执行注释处理和/或编译。
-processor <class1>[,<class2>,<class3>...] 要运行的注释处理程序的名称; 绕过默认的搜索进程
-processorpath <路径> 指定查找注释处理程序的位置
-parameters 生成元数据以用于方法参数的反射
-d <目录> 指定放置生成的类文件的位置
-s <目录> 指定放置生成的源文件的位置
-h <目录> 指定放置生成的本机标头文件的位置
-implicit:{none,class} 指定是否为隐式引用文件生成类文件
-encoding <编码> 指定源文件使用的字符编码
-source <发行版> 提供与指定发行版的源兼容性
-target <发行版> 生成特定 VM 版本的类文件
-profile <配置文件> 请确保使用的 API 在指定的配置文件中可用
-version 版本信息
-help 输出标准选项的提要
-A关键字[=值] 传递给注释处理程序的选项
-X 输出非标准选项的提要
-J<标记> 直接将 <标记> 传递给运行时系统
-Werror 出现警告时终止编译
@<文件名> 从文件读取选项和文件名
1
[root@localhost local]# java -version
1
2
3
4
[root@localhost local]# java -version
java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)

linux下jdk8安装成功

注:
处理-bash: vim: 未找到命令

1
yum install vim

Docker-Compose安装sqlserver

发表于 2021-09-07
字数统计: 170 字 | 阅读时长 ≈ 1 min

前提:

1、docker已安装(自行百度)

2、docker-compose已安装(自行百度)

安装

安装目录:

1
/data

docker-compose.yml内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
version: '3'
services:
#服务名称
mssql:
#容器名称
container_name: mssql
#镜像名称
image: alexk002/sqlserver2019_demo:1
#总是重启后启动
restart: always
#端口映射
ports:
- 1433:1433
#挂载
volumes:
- /data:/var/lib/rabbitmq
#环境变量
environment:
- ACCEPT_EULA=Y
#SA用户密码
- SA_PASSWORD=sqlserver@1234

进入到data目录下,执行命令:

1
docker-compose -f docker-compose.yml up -d

其他(直接docker安装的方式)

1
2
3
docker pull alexk002/sqlserver2019_demo:1

docker run --name dkmssql -e 'SA_PASSWORD=sqlserver@1234' -p 1433:1433 -d alexk002/sqlserver2019_demo:1

判断List集合中对象的某个字段是否存在重复值

发表于 2021-09-04
字数统计: 380 字 | 阅读时长 ≈ 2 min

判断泛型集合中的对象的某个字段是否有重复值的需求,特在此对方法进行记录。
这里我们使用了Java8的新特性Strem流,详细代码如下。
实体类如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/**  
* @Title: Person.java
* @Description: TODO(描述)
* @author Soul
*/
public class Person {

private String name;
private Integer age;
private String gradle;

public Person() {
super();
}

public Person(String name, Integer age, String gradle) {
super();
this.name = name;
this.age = age;
this.gradle = gradle;
}

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getGradle() {
return gradle;
}
public void setGradle(String gradle) {
this.gradle = gradle;
}

@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + ", gradle=" + gradle + "]";
}

}

测试代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public static void main(String[] args) {
Person person1 = new Person("小刘", 24, "男");
Person person2 = new Person("小贺", 18, "女");
Person person3 = new Person("小袁", 18, "女");
Person person4 = new Person("小李", 21, "男");
Person person5 = new Person("小子", 21, "男");
List<Person> persons = Arrays.asList(person1, person2, person3, person4,person5);

// 根据指定属性分组,并统计数量(key:指定属性,value:数量)

Map<Object, Long> mapGroup = persons.stream().collect(Collectors.groupingBy(person -> person.getAge(), Collectors.counting()));
System.out.println(mapGroup.toString());

// 筛选Map中value大于1的key
Stream<Object> stringStream = mapGroup.entrySet().stream().filter(entry -> entry.getValue() > 1).map(entry -> entry.getKey());
System.out.print("重复的数据:{ ");
stringStream.forEach(str -> {
System.out.print(str + " ");
});
System.out.println("}");
}

输出结果:

1
2
{18=2.21=2,24=1}
重复的数据:{ 18 21 }
1…202122…38

继开

一辈子很短,努力的做好两件事就好:第一件事是热爱生活,好好的去爱身边的人;第二件事是努力学习,在工作中取得不一样的成绩,实现自己的价值,而不是仅仅为了赚钱。

303 日志
171 标签
RSS
gitee E-Mail
0%
鲁ICP备18007712号
© 2025 继开 | 站点字数统计: 262.2k
博客使用 Hexo 搭建
|
主题 — NexT.Mist v5.1.4
人访问 次查看